-1

私はCを初めて使用します。次のプログラムの場合、問題は次のとおりです。入力する整数が何であれ、出力は1です。問題がどこにあるか教えてください。

#include <stdio.h>

int main(void)
{
    int n;
    n = scanf("%d", &n);
    printf("%d\n", n);
}
4

4 に答える 4

2

の戻り値を出力しているためですscanf()。scanf()は、正常にスキャンされた値の数を返します。

行を変更します。

n = scanf("%d", &n);

に:

 scanf("%d", &n);

または、入力が成功したかどうかを確認する場合は、別の変数を使用します。

if (scanf("%d", &n)! = 1 ) {
   /* Input failure */
}
于 2013-03-17T13:26:57.413 に答える
2

scanf読み取られた有効な値の数を返します。あなたの例では、最初に値が読み込まれ、入力として有効な整数を入力する限り、nその戻り値scanfは常に現在の実装にあります。1

于 2013-03-17T13:27:07.897 に答える
1

scanf()正常に読み取られたアイテムの数を返します。したがって、に割り当てるとnn1 が含まれます (整数がエラーなしで読み取られる場合)。

全体として:コードを次のように変更します

scanf("%d", &n);

Cに関する良い本を読んでください。

于 2013-03-17T13:28:35.493 に答える
0

あなたのエラーは

n = scanf( "%d"、&n);

に変更します

scanf("%d", &n);

それなら大丈夫なはずです

于 2013-03-17T13:37:41.317 に答える