亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于三種循環的比較

#include <stdio.h>

int main()

{

? ? /* 小伙伴們:

? ? ? ? ? ?選擇你們認為最合理的循環結構完成功能吧 */

? ? int sum = 0; ?//定義計算結果變量sum

? ? int i = 1; ? ?//定義循環數字變量i

? ? int flag = 1; //定義符號狀態變量flag


? ??

? ? //使用for循環

? ? for(i=1;i<=100;i++)

? ? {

? ? ?if(i%2==0)

? ? ?{

? ? ? ? flag=-1;?

? ? ?}

? ? ?else

? ? ?{

? ? ? ? flag=1;

? ? ?}

? ? ?i*=flag;

? ? ?sum+=i;

? ? } ?

? ? printf("sum=%d\n",sum);?

? ??

? ? return 0; ? ?

}

為什么出錯了?


正在回答

3 回答

我重新貼一下

#include?<stdio.h>
int?main()
{
????int?sum?=?0;
????int?i?=?1;??
????int?flag?=?1;

????for(i=1;i<=100;i++)????????????????//i為循環變量,每次循環i++,i>100時不循環
????{
????????if(i%2==0)
????????{
????????????flag=-1;
????????}
????????else
????????{
????????????flag=1;????????????????????????
????????}
????????i*=flag;???????????????????????//這一步改變了i的值,這使得無法滿足i>100
????????sum+=i;
????}
????printf("sum=%d\n",sum);
????return?0;
}

也就是說,按照想法i從1~100循環各執行一次,一共執行100次。但是循環中i的值被改變了,所以和本意不符。

修改方式:不要在循環體里面修改變量,而是創造一個“替身”變量。

#include?<stdio.h>
int?main()
{
????int?sum?=?0;
????int?i?=?1;??
????int?flag?=?1;
????int?temp;??????????//定義一個“替身”變量

????for(i=1;i<=100;i++)
????{
????????if(i%2==0)
????????{
????????????flag=-1;
????????}
????????else
????????{
????????????flag=1;????????????????????????
????????}
????????temp?=?i?*?flag;?//這里如此修改
????????sum?+=?temp;?????//從而i的值不被改變,循環如意進行
????}
????printf("sum=%d\n",sum);
????return?0;
}


1 回復 有任何疑惑可以回復我~
#1

doublekosd

  i*=flag;                       //這一步改變了i的值,這使得無法滿足i>100         sum+=i; 直接改成:sum+=i*flag應該可以。
2017-01-18 回復 有任何疑惑可以回復我~
#2

gjfLeo 回復 doublekosd

嗯貌似是這樣_(:зゝ∠)_
2017-01-18 回復 有任何疑惑可以回復我~
#3

qq_小MEI_0 提問者

非常感謝!
2017-01-22 回復 有任何疑惑可以回復我~

i*=flag這里不對,i的作用是控制循環,你這個完成了直接上去執行for循環,如果i值變為負的,再上去執行i++就沒有意義了。可以把i*=flag;sum+=i;改成sum+=i*flag;?


2 回復 有任何疑惑可以回復我~

不知道


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

關于三種循環的比較

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號