作者a303121 (夏夜星)
看板Examination
標題[問題] 101地方特考 程式語言
時間Wed Jun 22 15:55:54 2016
題目如下
http://imgur.com/LeuhmC4
前三次輸出的答案為 i=3 j=9 k=1 s=2 a=2
i=4 j=8 k=2 s=2 a=0
i=6 j=7 k=3 s=7 a=10
但是我算出來第一次答案為
i=2 j=9 k=1 s=1 a=2
想法如下
for(i=1;i<j-- -k;)
{
if(j>k++*3&&(a=madta[i++])>0)
s+=i++;
cout<<"i="<<i<<"j="<<j<<"k="<<k<<"s="<<s<<"a="<<a<<endl;
};
首先一開始程式有宣告 int i=11,j=10,k=0,s=0,a=0;
for(i=1;i<j-- -k;)===>這裡 i<j-- -k 為關係運算只看j=j-1得到i=1,j=9(因為j=j-1)
if(j>k++*3&&(a=madta[i++])>0)===>為邏輯運算只得k=1(k=k+1),a=2
s+=i++ ===>s=s+i 得到 s=1(s一開始為0) 然後i=i+1 得到i=2
總結輸出 i=2 j=9 k=1 s=1 a=2
第一次解答為 i=3 j=9 k=1 s=2 a=2
請問一下我的想法有甚麼問題嗎??
謝謝各位教導
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.206.122
※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1466582157.A.3F9.html
推 agreerga: 第一次cout時 i已經++兩次了喔 06/22 16:19
推 lexus7310: 這一題基本上小部分考程式理解 大部分考視力的 06/22 16:38
→ lexus7310: mate[i++] 就i就+1變成2了 06/22 16:43
→ lexus7310: 所以s=2 之後i再加1 變3 06/22 16:44
→ a303121: 我懂了 謝謝 06/22 17:48
推 libra1036: 第4次 *i=11,j=6,k=3,s=7,a=10;第5次 *i=13其他不變 06/22 22:03
→ libra1036: 請問怎麼會跳過 *i=12,謝謝!! 06/22 22:04
推 SSiuan: 歡迎入我們資訊處理的賴群組喔!一起解題,站內信給我你 06/22 22:14
→ SSiuan: 的賴即可 06/22 22:14
推 lexus7310: 因為回圈跑了兩次才進入最後一次輸出 06/24 08:37