最近我正在跟著一本書——《資訊學奧賽一本通(C++版)》學習C++,書后練習題中有一道題如下:
津津的零花錢一直都是自己管理。每個月的月初媽媽給津津300元錢,津津會預算這個月的花銷,并且總能做到實際花銷與預算的相同。
為了讓津津學習如何儲蓄,媽媽提出,津津可以隨時把整百的錢存在她那里,到了年末她會加上20%還給津津。因此津津制訂了一個儲蓄計劃:每個月每個月的月初,在得到媽媽給的零花錢后,如果她預計到這個月的月末手中還會有多余100元或恰好100元,她就會把整百的錢存在媽媽那里,剩余的錢留在自己手中。
例如,11月初津津手中有83元,媽媽給了津津300元。津津預計11月的花銷是180元,那么她就會在媽媽那里存200元,自己留下183元.到了11月末,津津手中會剩下3元錢。
現在請你根據2020年1月到12月每個月津津的預算,計算到2020年末,媽媽將津津平常存的錢加上20%還給津津后,津津手中會有多少錢。
輸入:
包括12行資料,每行包含一個小于350的非負整數,分別表示1月到12月津津的預算。
輸出:
只包含一個整數。如果儲蓄計劃實施程序中出現某個月錢不夠用的情況,輸出-X,X表示出現這種情況的第1個月;否則輸出到2020年末津津手中會有多少錢。
樣例輸入1:
290
230
280
200
300
170
340
50
90
80
200
60
樣例輸出1:
-7
樣例輸入2:
290
230
280
200
300
170
330
50
90
80
200
60
樣例輸出2:
1580
我的程式如下:
# include <cstdio>
using namespace std;
int main()
{
int money = 0, budget, deposit = 0, back = 0, result = 0;
//分別定義money(津津手里的錢),budget(每月預算)、deposit(津津存到媽媽手里的錢)、back(最后媽媽連本帶息還給津
//津的錢)和result(最終津津手里有多少錢)
for (int i = 1; i <= 12; ++i) //利用for回圈輸入12遍月預算
{
money += 300; //每月媽媽給津津零花錢300元
scanf("%d", &budget); //用戶輸入該月預算
money -= budget; //求出拋去該月預算還剩多少錢
if (money < 0) //判斷錢是不是不夠了
{
printf("%d\n", -i);
return 0; //輸出-X,結束程式
}
else
{
deposit += ((money / 100) * 100);
money %= 100; //(問題在這)求出剩余錢當中有多少整百的錢,存入媽媽那里(deposit增加,money減少)
}
}
back = deposit * 1.2; //(問題在這)連本帶息還給津津1.2倍的錢
result = back + money; //加上津津12月手里還剩的錢就是最終結果
printf("%d\n", result);
return 0; //結束程式
}
那本書有一個配套的測評網站——http://ybt.ssoier.cn:8088/,我把程式傳輸上去之后說不對,我很迷茫,檢查多遍后查看參考答案,答案如下:
【參考程式】
#include <iostream>
#include <cstdio>
using namespace std;
int x; int i,n,t; bool f=1;
int main()
{
t=0; n=0; //t存津津留在手里的錢,n存津津存在媽媽手里的錢,初始值均賦為0
for(i=1;i<=12;++i)
{
scanf("%d",&x);
t=t+300-x;
if (t<0)
{
printf("%d\n",-i);
return 0;
}
if (t>=100)
{
n=n+t/100; t%=100;
}
}
printf("%d\n",n*120+t);
return 0;
}
我看完很納悶,答案和我沒區別呀?經過多次測驗我發現,測評網站認為我先*100再*1.2不對,應該像答案一樣直接乘120,這兩個難道不是一樣的嗎???
100*1.2=120呀?!

是不是因為乘1.2之后型別變了或者不符了???求助各位大佬,感謝!!!十分感謝!!!


uj5u.com熱心網友回復:
你們倆的都是不太好的,資料型別不應該用int,至少要用float型的。比如100*1.2等于120是沒有錯的,但是如果3*1.2呢?uj5u.com熱心網友回復:
感謝指點!感謝感謝!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/257886.html
標籤:C++ 語言
上一篇:我用vs,為什么不能除錯成功
下一篇:求問ctime的一個報錯
