1

2 つの数値を取り、その値に応じて、両方が奇数、両方が偶数、または A が奇数で B が偶数などを返すプログラムを作成しようとしています。

プログラムに 1 つの変数をチェックさせることができましたが、2 番目の変数を追加すると、予期しない出力が得られ、コードを調整して正しい出力を与えることができないようです。if/else文の配置に問題があると思います。

#include <stdio.h>

int main()
{
    int numA, numB;
    printf("Please enter variables:");
    scanf("%d, %d", &numA, &numB);
    if (numA % 2) {
        printf("Variable A:%d is odd \n",numA);
    }
else{
    printf("Variable A:%d is even \n", numA);
}
if (numB % 2) {
    printf("Variable B:%d is odd \n",numB);
}
else{
    printf("Variable B:%d is even \n", numB);
}
return 0;
}

私が得る出力は以下のとおりです

Please enter variables:4 5
Variable A:4 is even 
Variable B:32767 is odd 

変数 B:32767 が 5 でないのはなぜですか?

いつも助けてくれてありがとう。これを整理できれば、あとは自分で解決できると思います。

4

1 に答える 1

7

あなたのscanfフォーマットは、数字がカンマで区切られていることを期待しています.

scanf("%d, %d", &numA, &numB);

しかし、あなたの入力はそうではなかったので、最初の数値のみが変換されscanf、2番目の数値は初期化されていませんでした。

および friendsの戻り値を常にチェックしscanfて、正しい数の変換が行われたことを確認する必要があります。

于 2012-11-13T13:27:05.843 に答える