[問題] 處理溢位問題?
用int宣告變數寫乘法運算,要怎麼處理溢位問題
int a,b,c,d=1;
cin >> a >> b;
c=a;
do {
c=c+a;
d++;
}
while(d!=b);
cout<<"a和b的積="<<c;
請問要怎麼改才能讓程式判斷當加到溢位時,cout<<"溢位囉!"
--
參照版上高手的解答,改成這樣,至少可以顯示已溢位(正整數計算)
int a,b,c,d=1,temp=0;
cin >> a >> b;
c=a;
do {
c=c+a;
if (temp>c)
{
cout<<"溢位囉!\n下面算出來的答案不正確喔!\n";
break;
}
d++;
temp=c;
}
while(d!=b);
cout<<"積="<<c;
請問,有break和沒有break算出來的答案會不一樣
是什麼原因?
在這裡的break是中斷if還是do?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.220.33
→
04/12 20:18, , 1F
04/12 20:18, 1F
→
04/12 20:18, , 2F
04/12 20:18, 2F
→
04/12 20:24, , 3F
04/12 20:24, 3F
※ 編輯: xup6xu6 來自: 140.123.220.33 (04/12 20:42)
※ 編輯: xup6xu6 來自: 140.123.220.33 (04/12 21:46)
推
04/12 21:54, , 4F
04/12 21:54, 4F
→
04/12 22:00, , 5F
04/12 22:00, 5F
→
04/12 22:01, , 6F
04/12 22:01, 6F
→
04/12 22:03, , 7F
04/12 22:03, 7F
→
04/12 22:03, , 8F
04/12 22:03, 8F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章