2016-10-09 6 views
-1

私を助けてくれてありがとう、ここで私のコードのセクションです。ロジックゲートCプログラムに固執する。 (New to C)

printf("Thank you, now please enter the logic gate"); 
scanf("%s", &C); 

if (C == 'AND') 
{ 
    if (A == 1 && B == 1) 
    { 
     (A && B == 1); 
     printf("You have chosen the AND logic gate \n"); 
     printf("%d\n", A); 
    } 
    else 
    { 
     printf("You have chosen the AND logic gate \n"); 
     A = 0; 
     printf("%d\n", A); 
    } 
} 

入力が複数の文字でどのように格納されるのか本当に混乱しています。 "AND"などのようなものです。

私のコードはIF文のいずれも入力していないようですが、どんな助けでも大歓迎です。

+2

「C」とは何ですか? '%s'指定子では、単一の' char'のアドレスではなく 'char'の配列が必要です。また、「AND」はおそらくあなたが考えるものではありません。文字列ではなくint型です。あなたは通常、* 1 *文字を内部で使うだけで(その文字の値を 'int'として得るために)一重引用符を使用します。文字列リテラルには二重引用符を使用し、 'strcmp()'などと比較してください。 – Dmitri

+2

'(A && B == 1);行は何もしません、コンパイラの警告を守ってください。 –

+0

'scanf("%s "、&C);'は 'scanf("%s "、C);でなければなりませんが、十分なコードを投稿していないと思います。 。 –

答えて

2
  1. まず、このようなif (!strcmp(str, "AND")) { // matched }
0

として文字列を比較する論理ゲートchar str[10]; scanf("%s", str)

  • の種類を読み取るために文字列を使用してコードにもコンパイルしていますか? A、B、Cの変数宣言を表示してください。

    printf("Thank you, now please enter the logic gate"); 
    scanf("%s", &C); 
    if (C == 'AND') 
    // '' means char, you most likely want string here 
    // so you need to use strncmp() to compare strings 
    
    if (A == 1 && B == 1) 
    { 
        (A && B == 1); 
        //^This is not a valid syntax for comparing values 
    
  • 関連する問題