问题遇到的现象和发生背景
【题目描述】
津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。
为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。
因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,
她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。
例如11月初津津手中还有83元,妈妈给了津津300元。津津预计11月的花销是180元,那么她就会在妈妈那里存200元,自己留下183元。
到了11月月末,津津手中会剩下3元钱。
现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。
如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。
【输入】
包括12行数据,每行包含一个小于350的非负整数,分别表示1月到12月津津的预算。
【输出】
只包含一个整数。
如果储蓄计划实施过程中出现某个月钱不够用的情况,输出-X,X表示出现这种情况的第一个月;
否则输出到2004年年末津津手中会有多少钱。
输入样例】
290
230
280
200
300
170
340
50
90
80
200
60
【输出样例】
-7
样例2】
输入:
290
230
280
200
300
170
330
50
90
80
200
60
输出:
1580
问题相关代码,请勿粘贴截图
#include<iostream>
using namespace std;
int main()
{
int yu=0,xcun=0,zcun=0,sum=0,t=0,out; //yu---余额;xcun---本月新存的钱;zcun---总的存钱;
int budget[12]; //budget---预算
for(int i=0;i<12;i++) //输入12个月的预算
{
cin>>budget[i];
}
for(int j=0;j<12;j++)
{
yu=yu+300; //月初妈妈给300----余额加300
if(yu<budget[j]) //若余额<本月预算
{
t=1;
out=-(j+1); //计算-X
break; //跳出循环
}
else //若余额>=本月预算
{
if((yu-budget[j])/100>=1) //若(余额-本月预算)/100>=1
{
xcun=(yu-budget[j])/100*100; //本月新存的钱=(余额-本月预算)/100*100
zcun=zcun+xcun; //总存款=总存款+新存款
yu=yu-budget[j]-xcun; //余额=余额-本月预算-本月新存款
}
}
}
sum=yu+zcun*1.2; //最后拿的钱=余额+总存款*1.2
if(t==1)
{
cout<<out<<endl; //输出-X
}
else
{
cout<<sum<<endl; //输出总钱数
}
return 0;
}
运行结果及报错内容
290
230
280
200
300
170
330
50
90
80
200
60
-7