これはユーザーが一連の番号を入力して追加する簡単なプログラムです。結果は画面に表示されます。コードは次のとおりです。ScanfはC言語で繰り返します
int main() {
int * numbers;
int result = 0;
int howMany;
int i;
printf("How many numbers would you like to add?\n");
scanf(" %d\n", &howMany);
numbers = (int *) malloc(howMany * sizeof(int));
for(i = 0; i < howMany; i++){
printf("Please enter number %d.\n", i + 1);
scanf(" %d\n", &numbers[i]);
result = result + numbers [i];
}
printf("Result: %d", result);
return 0;
}
問題があります。このプログラムは何らかの理由で2回追加したい数字の数を入力します。何故ですか?どうすれば修正できますか? また、これが関連しているかどうかはわかりませんが、結果も意味がありません。ときどき彼らは正しい、他の時代はそうではない、どちらかといえば確信していない。おかげさまで
'scanf'の'%d'の後の '%d'と' \ n'の前の空白の目的は何ですか? – haccks
'\ n'を' scanf'文から削除すれば、それは正常に動作します( 'scanf'の戻り値をチェックすることになりますが、それは別の問題です)。 –
ステップ1:コードが 'scanf()'に問題があるときはいつでも、その戻り値を確認してください。それはここで問題を解決することはありませんが、最初に試してみるべきです。 – chux