我正在尝试使用新功能打印hello world 5次名为: hello_world 。我在 hello_world 函数中使用for循环。这是我得到的结果:
C:\Users\darce\Desktop\c\functions\cmake-build-debug\functions.exe
Hello, World!
Hello, World!
Hello, World!
Process finished with exit code 0
这是我的代码:
#include <stdio.h>
void hello_world(int n) {
for (int i = 0; i < n; i++)
{
puts("Hello, World!");
i++;
}
}
int main ()
{
hello_world(5);
return 0;
}
我的问题是为什么它只打印3次而不是5次?对于参数 int n ,我确定在运行它之前是5。
答案 0 :(得分:1)
因为你在循环中增加了两次。 删除最后一个i ++,它工作正常。
答案 1 :(得分:1)
您的问题是您增加i
两次。因此,它将是0,然后是2,然后是4,然后是6,大于5。
要解决此问题,只需删除i++;
之后的puts("Hello, World!");
行,或将for
循环转换为while
循环。
#include <stdio.h>
void hello_world(int n) {
for (int i = 0; i < n; i++)
{
puts("Hello, World!");
}
/* CAN BE SIMPLIFIED BY REMOVING THE BRACES */
}
int main ()
{
hello_world(5);
return 0;
}
#include <stdio.h>
void hello_world(int n) {
int i = 0;
while (i < n)
{
puts("Hello, World!");
i++;
}
}
int main ()
{
hello_world(5);
return 0;
}
答案 2 :(得分:0)
此for循环的形式是在最终语句或函数分别执行或返回后始终递增计数器变量。所以,任何增加的“我”都会增加。在循环体中,在这种情况下,将为for循环计数器的值加1,从而破坏计数。