求dalao改错qwq

P1089 [NOIP2004 提高组] 津津的储蓄计划

我把你的程序进行了小改动,已经过了,程序如下 ```cpp #include<cstdio> int main() { //FILE *fin,*fout; //fin=fopen("data.in","rb"); //fout=fopen("data.out","wb"); int n=0;//津津当前钱数 int save=0;//津津存钱数 int e=0; for(int i=1;i<=12;i++) { int m;//预算 scanf("%d",&m); n+=300;//妈妈给津津钱 if(n<m)//如果当前钱数不够预算的话 { e=-i; break; } n-=m;//更新津津月末开销完毕还剩下的钱数 int temp=n/100;//该月存的钱(可为0) save+=temp;//更新总存钱数 n-=temp*100;//更新津津存钱之后还剩下的钱数 } if(e<0)//如果当前钱数不够预算的话 { printf("%d",e);//扔沟 return 0; } n+=save*120;//(save*6/5); printf("%d",n); return 0; //fclose(fin); //fclose(fout); } ```
by 厌胜 @ 2017-07-16 11:28:55


首先,你定义的saveout完全没有用到,我这里用e代替了它给你看看作用。 其次,因为你定义的save是整数型,所以之后的\*6/5操作结果应该会是浮点型,那就会出现误差。所以我这里将它变成了存在妈妈那里的钱的百位(比如,如果save是1,就表示在妈妈那里存了100元),然后再将它\*120,表示年末妈妈给津津的钱。 然后,程序能简单点就简单点,没必要在int temp=((n-m)/100)\*100;之后还n-=m;。可以直接先将剩余的钱算出来,再去计算有多少要存到妈妈那里去。
by 厌胜 @ 2017-07-16 11:36:28


@[厌胜](/space/show?uid=25357) 谢谢前辈的修改与指导!
by indev @ 2017-07-25 17:30:44


|