最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于三種循環(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


? ??

? ? //使用for循環(huán)

? ? 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; ? ?

}

為什么出錯(cuò)了?


正在回答

3 回答

我重新貼一下

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

????for(i=1;i<=100;i++)????????????????//i為循環(huán)變量,每次循環(huán)i++,i>100時(shí)不循環(huán)
????{
????????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循環(huán)各執(zhí)行一次,一共執(zhí)行100次。但是循環(huán)中i的值被改變了,所以和本意不符。

修改方式:不要在循環(huán)體里面修改變量,而是創(chuàng)造一個(gè)“替身”變量。

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

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


1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

doublekosd

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

gjfLeo 回復(fù) doublekosd

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

qq_小MEI_0 提問者

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

i*=flag這里不對(duì),i的作用是控制循環(huán),你這個(gè)完成了直接上去執(zhí)行for循環(huán),如果i值變?yōu)樨?fù)的,再上去執(zhí)行i++就沒有意義了??梢园裪*=flag;sum+=i;改成sum+=i*flag;?


2 回復(fù) 有任何疑惑可以回復(fù)我~

不知道


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
C語言入門
  • 參與學(xué)習(xí)       927377    人
  • 解答問題       21538    個(gè)

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

進(jìn)入課程

關(guān)于三種循環(huán)的比較

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)