我知道如何按升序进行计数。在使用其他方法之前,我已使用for Loop
完成了以下操作:
#include<stdio.h>
int main()
{
int i;
for(i = 1; i <= 10; i++)
{
printf("%d", i);
}
return 0;
}
以上就行了。所以我试图使用while loop
并使用以下内容来执行此操作:
#include<stdio.h>
int main()
{
int i, number = 10;
while(i <= number)
{
i = number;
}
i++;
printf("%d", i);
return 0;
}
注意:我可以理解上面的内容很糟糕,应该避免。它很简单,但我很高兴知道我做错了什么。我尝试调试,它显示38 while loop
。
答案 0 :(得分:3)
你的while循环可能如下所示:
int main(void) {
int i = 1, number = 10; // initialize i to 1
while(i <= number)
{
printf("%d\n", i);
i++;
}
return 0;
}
答案 1 :(得分:2)
您尚未将i
初始化为某个值。所以它包含垃圾值。
i++
也应该在while循环中。否则,如果i
的垃圾值小于10
答案 2 :(得分:2)
您尚未将i
初始化为1
。您还没有在循环中包含i++
。
你想要做的是运行while循环,直到i
等于10
,所以为了做到这一点,你必须在循环的每次迭代时增加i
,你也错误地完成了i = number
{ {1}},也许您希望printf("%d" , i)
使用此代码成为
#include <stdio.h>
int main()
{
int i = 1, number = 10;
while (i <= number)
{
printf("%d", i);
i++;
}
return 0;
}
输出:1 2 3 4 5 6 7 8 9 10
在10
之后,i
超过number
(等于10
),因此循环停止。
答案 3 :(得分:2)
这个for循环
for(i = 1; i <= 10; i++)
可以通过以下方式转换为while循环。表达式
i = 1;
(即变量i
的初始化)将放在while循环之前。条件
i <= 10
将用作while循环的条件。
最后,表达式i++
将在循环体中用作最后一个语句。将所有这些结合在一起你就会得到
#include <stdio.h>
int main( void )
{
int i;
i = 1;
while( i <= 10 )
{
printf("%d ", i);
i++
}
return 0;
}
因此,如果你有像
这样的for循环for ( expression1 ; condition2 ; expression3 )
{
statements
}
然后通常你可以用以下方式将它转换为等效的while循环
expression1;
while ( condition2 )
{
statements
expression3;
}
如果for循环包含一些continue
语句,那么您需要在相应的while循环中的每个continue语句之前包含expression3
..
与原始while循环相关的另一种方法是在条件中组合条件和第三个表达式。在这种情况下,变量i
的初始值应该等于0.例如
#include <stdio.h>
int main( void )
{
int i;
i = 0;
while( ++i <= 10 )
{
printf("%d ", i);
}
return 0;
}
关于这个程序
include<stdio.h>
int main()
{
int i, number = 10;
while(i <= number)
{
i = number;
}
i++;
printf("%d", i);
return 0;
}
然后它有未定义的行为,因为变量i
未初始化。至少这些陈述
i++;
printf("%d", i);
必须位于循环体内和语句
中i = number;
必须删除。
考虑到根据C标准函数main,没有参数应声明为
int main( void )
答案 4 :(得分:1)
您忘记影响或初始化i
。如果你没有C标准说明它的未定义行为。
int i = 0; // for example
顺便说一下,在你的情况下,main的正确原型是int main(void);
答案 5 :(得分:1)
必须将变量i
初始化为1.此外,i++
应该在循环中。不确定为什么要在每次迭代时为i分配编号。
您的代码已更改:
#include<stdio.h>
int main()
{
int i =1;
int number = 10;
while(i <= number)
{
i = number; // why are you assigning 10 to i?
i++;
}
printf("%d", i);
return 0;
}