為什么輸出錯(cuò)誤?。看罄袀?,help me.
#include <stdio.h>
int main()
{
? ? /* 小伙伴們:
? ? ? ? ? ?選擇你們認(rèn)為最合理的循環(huán)結(jié)構(gòu)完成功能吧 */
? ? int sum = 0;? //定義計(jì)算結(jié)果變量sum
? ? int i = 1;? ? //定義循環(huán)數(shù)字變量i
? ? int flag = 1; //定義符號(hào)狀態(tài)變量flag
? ??
? ? //使用while循環(huán)
? ? while(i<=100)
? ? {
? ? ? ? i++;
? ? ? ? sum+=flag*i;
? ? ? ? flag*=-1;
? ? }
? ??
? ? i = 1;? //重新初始化變量i
? ? //do-while循環(huán)
? ? do{
? ? ? ? i++;
? ? ? ?sum+=flag*i;
? ? ? ?flag*=-1;
? ? }while(i<=100);
? ??
? ? i = 1;? //重新初始化變量i
? ??
? ? //使用for循環(huán)
? ? for(i=1;i<=100;i++)
? ? {
? ? ? ? sum+=flag*i;
? ? ? ? flag*=-1;
? ? }??
? ? printf("sum=%d\n",sum);?
? ? return 0;? ??
}
2022-05-01
你輸出來(lái)的因該是-150;那是因?yàn)槟惆讶齻€(gè)循環(huán)都一起運(yùn)行了,while循環(huán)之后的時(shí)候sum的值是-50;到do-while循環(huán)的時(shí)候sum又從-50開始循環(huán)運(yùn)算,以止類推,到for循環(huán)結(jié)束;這時(shí)候sum的值為-150;你只要隨便把兩個(gè)循環(huán)注釋掉就行了
例如:
#include <stdio.h>
int main()
{
? ? /* 小伙伴們:
? ? ? ? ? ?選擇你們認(rèn)為最合理的循環(huán)結(jié)構(gòu)完成功能吧 */
? ? int sum = 0;? //定義計(jì)算結(jié)果變量sum
? ? int i = 1;? ? //定義循環(huán)數(shù)字變量i
? ? int flag = 1; //定義符號(hào)狀態(tài)變量flag
? ??
? ? //使用while循環(huán)
? ? while(i<=100)
? ? {
? ? ? ? i++;
? ? ? ? sum+=(i*flag);
? ? ? ? flag*=-1;
? ? }
? ??
? ?/* i = 1;? //重新初始化變量i
? ??
? ? //do-while循環(huán)
? ? do{
? ? ? ? i++;
? ? ? ? sum+=(i*flag);
? ? ? ? flag*=-1;
? ? }while(i<=100);
? ??
? ? i = 1;? //重新初始化變量i
? ??
? ? //使用for循環(huán)
? ? for(i=1;i<=100;i++)
? ? {
? ? ? ? sum+=(i*flag);
? ? ? ? flag*=-1;
? ? }? */
? ? printf("sum=%d\n",sum);?
2022-01-29
我知道哪里出問(wèn)題了,因?yàn)槊窟M(jìn)行一次大循環(huán),sum都會(huì)減50,三次循環(huán)就變成了-150了,那么我可以重新在第三次循環(huán)之前重新定義sum的值為0,或者在printf中使得sum/3,例如:printf("sum=%d\n",sum/3);