另一个C语言问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 09:25:19
下面程序的运行结果是[ 16,60 ]
#include <stdio.h>
main( )
{ int a,y;
a=10;y=0;
do
{a+=2;y+=a;
if (y>50) break;
} while (a=14);
printf(“a=%d y=%d\n”,a,y); }
我就是不明白为什么是16,60。请写出计算过程,分析过程。

#include <stdio.h>
main( )
{ int a,y;
a=10;y=0;
do
{a+=2;y+=a; //应为下面的赋值语句,第一次循环,a=12,y=12而第二次则为a=16 y=12+16,第三次也因为下面给A赋值为14,除第一次循环外A都=16,而y=12+16+16+16...直到y>50下面的条件判断语句结束循环
if (y>50) break;
} while (a=14); //你不明白的地方也许再这。这是赋值语句,a=14,循环条件永远判定为真
printf(“a=%d y=%d\n”,a,y); //输出
}

a以2递增,y以a递增:
第1次循环:a=12;y=12
第1次循环:a=12;y=12
第1次循环:a=12;y=12