试图用C语言完成一个更大的任务,但是由于某种原因,这个小难题(或者我认为)没用。
我想在每行上打印0到9:
#include <stdio.h>
#include <stdlib.h>
#define MAX 9
int main()
{
for (int counter = 0; counter == MAX; counter++)
printf("%d \n", counter);
return 0;
}
但是,当我构建并运行时,什么也不会发生*。我已经呆了一个多小时了...
* Nothing = Process returned 0 (0x0)
...
答案 0 :(得分:2)
将counter == MAX
更改为counter <= MAX
。因此,在这种情况下,您的循环将运行直到计数器小于或等于MAX
答案 1 :(得分:2)
只要检查表达式for
保持counter == MAX
,true
循环将继续运行。在此代码段中绝不是这种情况。您可能是说counter != MAX
。
这将打印0-8,而不是0 -9。为此,您需要将MAX
设置为10或将循环条件更改为counter <= MAX
。
答案 2 :(得分:2)
我的猜测是,您认为for
循环中第一个分号之后的语句是在条件为true时停止循环的条件。实际上,要执行循环,该语句必须为true /非零。
改为尝试for(int counter = 0; counter <= MAX; counter++)
。
答案 3 :(得分:1)
for中间区域后面的想法是循环继续的条件,如果为真,则不要停止。当条件返回true
值时,循环将继续。在您的情况下,条件必须看起来像这样:counter <= MAX
。而在整个循环中:
for (int counter = 0; counter <= MAX; counter++)
printf("%d \n", counter);
答案 4 :(得分:0)
有两件事可能会阻止此代码运行。
第一件事是其他人都指出的。在for循环的条件部分中,条件永远是错误的
for(initialization; condition; increment/decrement)
{
//code here
}
正确的条件似乎是
counter <= MAX
{
功能块的大括号main()
之后。 因此最好的方法是
#include <stdio.h>
#include <stdlib.h>
#define MAX 9
int main()
{
int counter;
for (counter = 0; counter <= MAX; counter++)
printf("%d \n", counter);
return 0;
}