C语言问题???急。。。。在线等!!!
main(){inta=10,y=0;do{a+=2,y+=a;printf("a=%dy=%d\n",a,y);if(y>20)break;}while(a=14);}...
main()
{ int a=10,y=0;
do
{a+=2,y+=a;
printf("a=%d y=%d\n",a,y);
if(y>20) break;
}
while(a=14);
};
结果是多少,答案是a=12 y=12
a=16 y=28
A=12 Y=12我知道。我不明白16与28怎么算的呀。高手请教下。要请细0呀! <以上为课本上的试题> 展开
{ int a=10,y=0;
do
{a+=2,y+=a;
printf("a=%d y=%d\n",a,y);
if(y>20) break;
}
while(a=14);
};
结果是多少,答案是a=12 y=12
a=16 y=28
A=12 Y=12我知道。我不明白16与28怎么算的呀。高手请教下。要请细0呀! <以上为课本上的试题> 展开
5个回答
展开全部
这是个do-while循环啊
循环开始a=10,y=0;
循环第一次a=12 y=12
到while那,把a赋值了14
所以,循环第二次的时候a=16 y=28
这个时候if(y>20) break; 退出循环了
也就是说,这个循环不是靠while中的条件退出的,因为它一直为真
而是靠if(y>20) break;退出的
do
{
a+=2,y+=a;
printf("a=%d y=%d\n",a,y);
if(y>20) break;
}
while(a=14);
循环开始a=10,y=0;
循环第一次a=12 y=12
到while那,把a赋值了14
所以,循环第二次的时候a=16 y=28
这个时候if(y>20) break; 退出循环了
也就是说,这个循环不是靠while中的条件退出的,因为它一直为真
而是靠if(y>20) break;退出的
do
{
a+=2,y+=a;
printf("a=%d y=%d\n",a,y);
if(y>20) break;
}
while(a=14);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你现在的程序得到的结果理论上就是a=12 y=12 :但因为while(a=14); 这个条件不是问a等于14吗,而是将14付值给a,所以循环执行有a=14+2=16啊y=14+12=28了(12是第一次付给y的值)要想得到a=12 y=12 需改while(a==14);就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的程序中有"while(a=14)"
当程序运行到这里的时候系统会对a赋值
当运行完第一次循环后出现a=12 y= 12
到while(a=14),a被赋值为14然后进入第二次循环
第二次printf出来的是a=16 y=28然后if(y>20) break执行,循环跳出
如果你将while(a=14)改为while(a==14)就可以得到a=12 y=12、这个唯一的结果
当程序运行到这里的时候系统会对a赋值
当运行完第一次循环后出现a=12 y= 12
到while(a=14),a被赋值为14然后进入第二次循环
第二次printf出来的是a=16 y=28然后if(y>20) break执行,循环跳出
如果你将while(a=14)改为while(a==14)就可以得到a=12 y=12、这个唯一的结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呵呵。看来你是学c的新手哦,这个问题是个比较容易错的位子,=是赋值表达式,==才相当于数学中的等于号,while()括号里一般是关系表达式和逻辑表达式。但也可以是其他的合法表达式。a=14是赋值,a==14才能作为判断条件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询