2017-09-10 52 views
0
#include<stdio.h> 

int main() 
{ 
    int i, j; 
    for(scanf("%d ",&i); i<=10; i++) 
    printf("%d ",i); 
    return 0; 
} 

我是編程世界的初學者,所以請幫我理解爲什麼編譯上面的C代碼時要求輸入兩次。可能有一些邏輯在這裏循環,我可能會錯過。請幫我understand.Thanks提前:)爲什麼下面的C代碼要求輸入兩次?

+3

'的scanf( 「%d」,&i);'? - >'的scanf( 「%d」,&i);' – BLUEPIXY

+0

所以與空間什麼的。爲什麼它應該再次提示我輸入請說明理由 – user7841468

+1

我不能看到它求回報 –

回答

4

更改此:

scanf("%d ",&i); 

這樣:

scanf("%d",&i); 

詳情請閱讀What does space in scanf mean?

+2

感謝..This是一個非常常見的錯誤......現在我知道發生了什麼事......非常感謝您,先生...... :) – user7841468

+0

@ user7841468好:不使用scanf函數在所有。總是輸入在時間線(POSIX'getline',或者實現它自己周圍'fgets'環路)和*然後*分析它(可能使用'sscanf') – o11c

0

Currencly,你放置的scanf()在for循環中,它要求輸入10次。當從for循環中刪除scanf()時,不會發生這種情況。

+0

'scanf()的'處於初始化for'循環的一部分。它只會運行一次。 – Arkia

相關問題