以本题为例,每次循环改变循环变量的正负号的方法有哪些?
为什么系统出的结果是sum=-150 ,求大神指教!!
因为你每个循环都做了一次,然而在do while循环和for循环的时候你没有重置初始化sum的值,导致do while循环体内的sum直接从50开始叠加。
//使用while循环 while(i<=100) { i++; sum=sum+i*flag; flag=flag*(-1); } printf("sum=%d\n",sum); i = 1; //重新初始化变量i //do-while循环 do{ i++; sum=sum+i*flag; flag=flag*(-1); }while(i<=100); printf("sum=%d\n",sum); i = 1; //重新初始化变量i //使用for循环 for(i=1;i<=100;i++) { sum=sum+i*flag; flag=flag*(-1); }