C语言的关于循环语句问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 13:53:36
main()
{ int a;
a=1;
while(a=1) a++;
printf("%d",a);
}

第一,这个程序哪里要修改,不要变动太大了!~
我的问题就是 "while(表达式) 循环体; "这个结构中
表达式可以是 赋值表达式a=1 吗?
main()
{ int a;
a=1;
while(a==1) a++;
printf("%d",a);
}

这个程序的结果是 2. 但如果 是a=1,则在TC2.0里面会提示表达式错误,而
main()
{ int a;

while(a=1,a==1) a++;
printf("%d",a);
}
结果也为2,所以说表达式里不能 单纯 为赋值表达式. 我是说C语言,而不是C++.

#include<stdlib.h>
#include<stdio.h>

int main()
{ int a;
a=20;
while(a) //这样就可以了;a=1会成死循环;
{ //这儿用大括号括起来,才可以打印出来,不括起来循环体就一句,a++,你上面的程序是死循环,所以运行后什么都看不到;
a--;
printf("%d ",a); //这样会输出19到0;
}
system("pause");
}

可以,但是这样会一直循环下去。不会结束。因为条件一直为真。应该写成a==1

可以是a=1,这在语法上是正确的。但是如果你这样写,几乎肯定达不到你想要的效果,因为a=1是个复制表达式,永远是真,也就是while要永远执行,会死循环。

如果写成a=1,用gcc进行编译时会出现warning:suggest parenthese around assignment used as true value,能够形成可执行文件,但是没有输出结果。a=1是赋值表达式,永远为真,应该写成a==1,才是判断语句。

不行.你这样的话就循环不了.而且用的时候缺少个DO在里面的,

最简单的方法是把while(a=1)改成 while(a==1)
表达式循环控制条件始终为真
造成了死循环~~