main() {int a=10,y=0; do{ a+=2;y+=a; if(y>50)break; }while(a
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/19 10:41:39
main() {int a=10,y=0; do{ a+=2;y+=a; if(y>50)break; }while(a=14); printf("a=%d" y=%d\n",a,y); }
答案是a=16 y=50 不清楚为什么
答案是a=16 y=50 不清楚为什么
a=10,y=0
进入循环,执行a+=2,y+=a,得到:a=12,y=12;
y>50不成立,不执行break;
执行while(a=14),a=14是赋值语句,永远成立,所以不断循环,此时a=14,y=12;
再次进入循环,执行a+=2,y+=a,得到:a=16,y=28;
同样道理,y>50不成立,不执行break,a=14赋值语句使得循环继续下去,此时a=14,y=28;
再次进入循环,执行a+=2,y+=a,得到:a=16,y=44;
同样道理,y>50不成立,不执行break,a=14赋值语句使得循环继续下去,此时a=14,y=44;
再次进入循环,执行a+=2,y+=a,得到:a=16,y=60;
这次y>50成立,执行break,跳出循环,此时a=16,y=60;
打印a和y的值为:a=16 y=60.
y的值是60,不是50.
此外,你的printf里多了一个双引号.
进入循环,执行a+=2,y+=a,得到:a=12,y=12;
y>50不成立,不执行break;
执行while(a=14),a=14是赋值语句,永远成立,所以不断循环,此时a=14,y=12;
再次进入循环,执行a+=2,y+=a,得到:a=16,y=28;
同样道理,y>50不成立,不执行break,a=14赋值语句使得循环继续下去,此时a=14,y=28;
再次进入循环,执行a+=2,y+=a,得到:a=16,y=44;
同样道理,y>50不成立,不执行break,a=14赋值语句使得循环继续下去,此时a=14,y=44;
再次进入循环,执行a+=2,y+=a,得到:a=16,y=60;
这次y>50成立,执行break,跳出循环,此时a=16,y=60;
打印a和y的值为:a=16 y=60.
y的值是60,不是50.
此外,你的printf里多了一个双引号.
main() {int a=10,y=0; do{ a+=2;y+=a; if(y>50)break; }while(a
#include main() {int y,a; y=2,a=1; while(y--!=-1) {do{a*=y;a
#include main ( ) { int a=10,y=0 ; do { a+=2 ; y+=a ; if (y>
#includeint main(void){int y,a;y=2,a=1;while(y--!=-1){do{a*=
int a,y;a=10;y=0;do{a+=2; y+=a;printf("a=%d y=%d\n",a,y);if(
int a,y;a=10; y=0;do{a+=2; y+=a;printf("a=%d y=%d\n",a,y);if
#include void f(int*x,int y) {*x=y+1;y=*x+2;} main() {int a=
int func(int x,int y ) { return(x+y) } main() {int a=1,b=2,c
fun(int x,int y,int z) {z=x*x+y*y;} main() {int a=31; fun(5,
#include void main() { int y=10; do{ y--; } while(--y); prin
define A(x,y) x*y-x/y main(){int a=5,b=2,y;y=A(a+b,a-b);prin
.main() { int a=1,b=10; do {b-=a;a++;}while(b--