這是一個簡單的程序,用戶輸入一系列數字,然後添加。結果打印在屏幕上。這裏的代碼: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;
}
但是有一個問題。該程序詢問用戶因某種原因需要添加兩次數字。這是爲什麼?我該如何解決它? 此外,不知道這是否相關,但結果也沒有意義。有時候他們是正確的,有時候他們不是,不知道爲什麼。 謝謝。
'scanf'中'%d'後的'%d'和'\ n'之前的空間用途是什麼? – haccks
從'scanf'語句中刪除'\ n',它會正常工作(可以檢查'scanf'的返回值,但這是另一個問題)。 –
第1步:每當代碼遇到scanf()問題時:檢查它的返回值。這不會解決這個問題,但它應該是第一件嘗試。 – chux