• 締切済み

JKフリップフロップ

下図の問題では答えが  34:J 35:!K となっているのですが、 下図の表と出力が一致しません。("次の出力"を表のQn+1またはnotQn+1とした場合) 下図のプログラムと表はどう関連しているのですか? ご教授お願いします。 #include<stdio.h> int main(void){ int Q[2]; int J,K; printf("\n\t 現在の出力 = " ); scanf("%d",&Q[0]); printf("\t 入力J = " ); scanf("%d",&J); printf("\t K = " ); scanf("%d",&J); if(Q[0] == 0 ) Q[1] = J; ←34 else Q[1] = !K; ←35 printf("\t次の出力 = %d\n",Q[1]); return 0; }

みんなの回答

  • heburusu
  • ベストアンサー率85% (140/164)
回答No.1

こんにちわ。 プログラムを実際に実行しても表の結果の通りとならないということでしたら、 以下の部分のKの入力が変数Jに入ってしまっているからではないでしょうか? >printf("\t K = " ); >scanf("%d",&J); 内容的にはQが"0"の場合と"1"の場合との真理値表を作成してみればわかると思います。 ・Qが0の場合 J K | Qn+1 0 0 | 0 0 1 | 0 1 0 | 1 1 1 | 1 -> Qが0の場合、次の出力(Qn+1)=J ・Qが1の場合 J K | Qn+1 0 0 | 1 0 1 | 0 1 0 | 1 1 1 | 0 -> Qが1の場合、次の出力(Qn+1)=!K

すると、全ての回答が全文表示されます。

関連するQ&A