我的作业需要使用for循环打印星形图案,如下所示:
!!!!!
!!!!
!!!
!!
!
这是我的循环:
int i, j;
for(i=5;i<=1;i--)
{
for(j=1;j<=i;j++)
{
printf("!");
}
printf("\n");
}
实际上我已经成功打印出如下图案:
!
!!
!!!
!!!!
!!!!!
通过以下循环:
int i, j;
for(i=1;i<=5;i++)
{
for(j=1;j<=i;j++)
{
printf("!");
}
printf("\n");
}
现在我很困惑为什么无法打印模式1,因为没有找到错误。 当我继续运行程序时,输出窗口也会停止运行。
我的Xcode是Ver 4.4.1
答案 0 :(得分:6)
此循环无法执行任何操作:
for(i=5;i<=1;i--)
它表示“从i = 5
开始,而i <= 1
;请i--
”。
在第一次迭代中,我已经> 1,所以你的循环甚至都没有进入。
你应该做的是扭转这个条件:
for (i = 5; i>= 1; i--)
这样,您将从i = 5
开始循环,并在i--
时执行i >= 1
。
for
循环的一般思维规则:
for (A; B; C)
{
D;
}
相当于
A;
while (B)
{
C;
D;
}
答案 1 :(得分:2)
在您的第一个代码示例中,您将编写以下内容:
for(i=5;i<=1;i--)
永远不会输入此for循环。在开始时i
设置为5.然后测试i<=1
,它将返回false
并跳过for循环。
你应该这样做:
for(i=5;i>=1;i--)
答案 2 :(得分:1)
错误。 使用
for(i=5;i>=1;i--)
而不是:
for(i=5;i<=1;i--)