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 不清楚为什么

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/11 21:48:36
main() {int a=10,y=0; do{ a+=2;y+=a; if(y>50)break; }while(a=14); printf(

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 不清楚为什么
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 不清楚为什么

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=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里多了一个双引号.

main() {int m[10],a;for(a=0,a #define MAX 10 int a[MAX],i; int main( ) sub1( ) { for(i=0;i #include int call(int s[],int y) { static int t=3; y=s[t--]; return(y); } void main() { in#includeint call(int s[],int y){static int t=3;y=s[t--];return(y);}void main(){int a[]={3,8,4,2},n,x=0;for(n=0;n main(){int a[]={2,4,6,8,10};int y=1,x,*p;p=&a[1];for(x=0;x 我想搞个X的Y次方的 算法 #include stdafx.hint main(int argc,char* argv[]){int pow(int x,int y);int a,b,c;scanf(%f,%f,&a,&b);c=pow(a,b);printf(%f ,c);return 0;}int pow(int x,int y){int i,z;i=1;z=x;while(i #include using namespace std; int main() { int a,b,c; a=3; int f(int x,int y,int z);#include using namespace std; int main() {int a,b,c;a=3;int f(int x,int y,int z); cin>>a>>b>>c;c=f(a,b,c);cout #includeint a(int x);int b(int y);int main(){int m,n;n=6;m=a(n);printf(%d ,m);return 0;}int a(int x){x=b(x+3);return x;}int b(int y){return y+1;} 一道c++的题目,就是不知道为什么算不对,快被逼疯了……#include using namespace std;int main(){int sort(int a[10]);int insert(int a[10],int b);int x[10],i,j,y,z[11];for(i=0;i>x[i];x[10]=sort(x);for(i=0;i # include main (){ int y=10;for( ; y>0; y - -)if (y%3 == 0 ){printf (%d,- -y);continue;}} #include int main(){ int x=0,y=0; while(x struct st{int x,int*y;}*p; int s[]={5,6,7,8} st a[]={10,&s[0],20,&s[1]30,&[2],40,&s[3]} main( ) {p=a;cout 为什么程序运行后的输出结果是 y=-1int main() { int y=10;while (y--);printf(y=%d ,y); return 0;} 求十个数中的最大值和最小值main(){int a[2],b[10],i;void f(int x[],int y[]);for(i=0;i请问为什么得出的结果不正确 打印出杨辉三角形main() {int i,j; int a[10][10]; printf( ); for(i=0;i # include void main() { int y=10; while(y--); printf(y=%d,y); } #include void main() { int y=10; do{ y--; } while(--y); printf(%d ,--y); } void fun(int a,int b) { int t; t=a;a=b;b=t; } main()void fun(int a,int b){ int t; t=a;a=b;b=t; } main() { int c[10]={1,2,3,4,5,6,7,8,9,0}.i; for(i=0;i #include void main(){int a[30];int i;for (i=0,i