第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 答案是 4, 14 ,而不是4 ,5

為什么 答案是 4, 14 ,而不是4 ,5

{int a[20]={1,2,3,4,5,-1,-2,-3,-4,-5,1,2,3,4,5,-1,-2,-3,-4,-5};?int ?i,m,n,f=0;?scanf("%d",&n);?for(i=0;i<20;i++)? ?if(a[i]==n){? ? ?f=1;? ? ?m=i;?}?if(f!=0)??printf("%d,%d\n", n,m+1);?else ?printf(" %d not found !\n",n);?}
查看完整描述

7 回答

已采納
?
天地不仁_以_萬物為芻狗

TA貢獻2條經(jīng)驗 獲得超0個贊

{int?a[20]={1,2,3,4,5,-1,-2,-3,-4,-5,1,2,3,4,5,-1,-2,-3,-4,-5};
?int??i,m,n,f=0;
?scanf("%d",&n);
?for(i=0;i<20;i++)
???if(a[i]==n){
?????f=1;
?????m=i;?
?????????//輸出結(jié)果是4,14,而不是4,5----是因為當(dāng)在控制臺輸入了4的時候,進入for循環(huán),進行if判斷,從數(shù)組a[20]中尋找符合??if(a[i]?==?n),即a[i]?==?4的數(shù)組元素;從數(shù)組中可以看出,符合條件的數(shù)組元素有兩個:分別為a[3]、a[13],當(dāng)a[3]?==?4滿足if判斷的時候,執(zhí)行if語句內(nèi)部的代碼片段(此時的【?i?==?3?,n?==?4?,m?==?i?==?3?】);【重點到了】:當(dāng)i?==?3執(zhí)行完之后,此時for循環(huán)并沒有結(jié)束條件(即?break跳出for循環(huán)),此時for循環(huán)繼續(xù)向下執(zhí)行,i?==?3,i++之后為4,不滿足判斷條件,然后i++之后為5,還是不滿足判斷條件......直到a[13]?==?4的時候,滿足判斷條件,然后執(zhí)行if內(nèi)部代碼片段(重復(fù)一遍,此時的?m?===?3?。?!依舊是上一次i?==?3的時候賦的值),當(dāng)執(zhí)行到m==i的時候,變量m重新賦值為i的當(dāng)前值(即13),到了此處if語句的內(nèi)部代碼片段不會再執(zhí)行,直到for循環(huán)結(jié)束。
?????????//此時的??f?==?1?,?i?==?19(因為for循環(huán)執(zhí)行到最后)?,?m?==?13(即第二次重新賦的值)
?????????//結(jié)論:然后代碼執(zhí)行到下面的【printf("%d,%d\n",?n,m+1);】語句?,n?==?4,?m+1?=13+1==14
?????????
????//要想最終的輸出結(jié)果是4,5那么久應(yīng)該在if語句執(zhí)行了?m?=?i?,這個表達式之后讓循環(huán)結(jié)束,那么此時的m保持的值就是第一次持有的值(【?i?==?3?,n?==?4?,m?==?i?==?3?】)
????
????break;????//加上此句即可
????
}
?if(f!=0)?????????????????????
?????????//當(dāng)if語句后面只有一行代碼的時候?{}?可以省略,樓主這種寫法沒問題。但是從代碼的可讀性上來說,這種習(xí)慣不好,建議不要省略{}
?printf("%d,%d\n",?n,m+1);
?else??
printf("?%d?not?found?!\n",n);?
}


查看完整回答
反對 回復(fù) 2016-05-11
?
codebase

TA貢獻5條經(jīng)驗 獲得超4個贊

你找到第一個5之后就應(yīng)該break跳出循環(huán)不然會繼續(xù)運行下去

查看完整回答
2 反對 回復(fù) 2016-05-09
?
堇延未七

TA貢獻36條經(jīng)驗 獲得超19個贊

首先你的問題就有問題哦~ 如果想返回某個數(shù)字第一次出現(xiàn)的位置,那么4在已經(jīng)定義的數(shù)組中第一次出現(xiàn)的位置為4,而不是5;

程序結(jié)果輸出的是數(shù)字最后一次出現(xiàn)的位置,因為在for循環(huán)中,并沒有在第一次找到后break跳出循環(huán),所以它會一直往下找。

int?main()
{
????int?a[20]={1,2,3,4,5,-1,-2,-3,-4,-5,1,2,3,4,5,-1,-2,-3,-4,-5};
????int?i,m,n,f=0;
????scanf("%d",&n);
????for(i=0;i<20;i++){
????????if(a[i]==n){
????????????f=1;
????????????m=i;
????????????break;
????????}
????}
????if(f!=0)
????????printf("%d,%d\n",n,m+1);
????else
????????printf("?%d?not?found?!\n",n);
????return?0;
}


查看完整回答
1 反對 回復(fù) 2016-05-10
?
Umi_Sun

TA貢獻19條經(jīng)驗 獲得超13個贊

你現(xiàn)在的獲得的結(jié)果是a[20]中最后一個4的位置。。。。如果打算獲得第一個的話,for循環(huán)中找到目標(biāo)就break。

~~ 祝好運

查看完整回答
1 反對 回復(fù) 2016-05-10
?
惟愿_無事常相見

TA貢獻30條經(jīng)驗 獲得超25個贊

你的for循環(huán)只包含了第一個if語句,遍歷完整個數(shù)組后如果指定值在數(shù)組中有多個,那么你定義的m值就會被重復(fù)賦值,留下的就是指定值最后一次出現(xiàn)在數(shù)組中的索引,然后才會跳出for循環(huán)。加g個break讓if語句第一次判定成功就跳出循環(huán)結(jié)果就是4,5 了。

查看完整回答
1 反對 回復(fù) 2016-05-10
?
楚風(fēng)聽雨

TA貢獻1條經(jīng)驗 獲得超0個贊

你的for循環(huán)到底包含了幾個if語句,你的{}呢?

查看完整回答
反對 回復(fù) 2016-05-10
  • 7 回答
  • 0 關(guān)注
  • 1962 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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