2017-09-10 48 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

相关问题