#include<stdio.h>
main(){
int n,i=1,b=1,a=1;
scanf("%d",&n);
if(n==3){
while(i<=3){
while(b<=i)
printf("%d",a);
a=a+1;
printf("\n");
i++;}
}
}
请问这个程序有结束的语句,为什么一直是1的循环?不知道哪里出现了问题,麻烦高人指点,谢谢 !
如有帮助,还请帮忙点下采纳!感谢!
while(b <= i)那里没大括号,所以一直执行下一句,跟
while(b <= i)
{
printf("%d",a);
}
是一个意思
while(b<=i) printf("%d",a); ,这里 b 没有变化,所以 b <= i 恒成立,死循环。
while(b<=i)这个循环里面没有能够让b和i值改变的语句,b和i一直不变所以就是死循环
原来是其中一个while语句没有大括号,所以只执行其后一条语句,一直输出1。
```c
#include<stdio.h>
main(){
int n,i=1,b=1,a=1;
scanf("%d",&n);
if(n==3){
while(i<=3){
while(b<=i)
printf("%d",a);
a=a+1;
printf("\n");
i++;}
}
}
```
你把第二个while 循环前后多加几行空白行。。。应该就会发现问题的。。。。第二个while 在第一次执行到的时候条件就无限为true,所以,成功进入死循环。。。