@[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