程序感觉没问题,但是没有过。。。。。。

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

@[proteinfame](/user/800102) 您的 hold 在执行过程中会不止一次降到零以下。 建议 hold 小于零时结束循环。
by 鱼跃于渊 @ 2022-11-05 21:49:55


@[TianShuiXingHe](/user/723378) 请问一下这样的话12个数据会不会无法完全输入呀。 ``` #include <stdio.h> #include <stdlib.h> int main() { int save=0,temp,hold=0,flag=0,g; for(int i=0;i<12;i++){ scanf("%d",&temp); save+=100*((hold-temp+300)/100); hold=(hold-temp+300)%100; if(hold<0){ g=i+1; flag=1; break; } } if(flag==0)printf("%d",save/5+save); else printf("-%d",g); return 0; } ``` 这样修改后好像也不能过
by q_n_q @ 2022-11-06 13:15:15


(っ °Д °;)っ
by q_n_q @ 2022-11-06 13:16:05


@[proteinfame](/user/800102) ``` save+=100*((hold-temp+300)/100); ``` 您一开始 hold 为零,而 temp 小于等于350,那么 save 可能为负数。
by 鱼跃于渊 @ 2022-11-06 13:32:11


@[proteinfame](/user/800102) ``` #include <stdio.h> #include <stdlib.h> int main() { int save=0,temp,hold=0,flag=0,g; for(int i=0;i<12;i++){ scanf("%d",&temp); save+=100*((hold-temp+300)/100); hold-=100*((hold-temp+300)/100);//改动一 hold=hold+300-temp; if(hold<0){ g=i+1; flag=1; break; } } if(flag==0)printf("%d",save/5+save+hold);//改动二 else printf("-%d",g); return 0; } ``` 自己想想为什么要这么改
by 鱼跃于渊 @ 2022-11-06 13:44:52


@[TianShuiXingHe](/user/723378) 谢谢大佬,明白了
by q_n_q @ 2022-11-06 13:51:45


|