@[ONicklgzh](/user/1132685) hello~
你的代码我看了,主要是有两个问题:
第一,在代码的第13行,你判断了sum是否小于0.但是要注意,假定上一个月只结余1元,然后这个月花销是500元,那么就会出现剩余钱数为-199元的情况.这时sum/100=-1,-1!=0,所以就会出现算法错误
第二,你在最后计算总钱数的时候,乘的是1.2,这就会导致精度问题.建议mother存储在妈妈那里存的100元的数目,最后用120*mother就不会出现精度问题了
说了这么多,看看我帮你改的代码:
```cpp
#include<stdio.h>
int arr[15], i, sum , mother;
int main() {
for (i = 1; i <= 12; i++) {
scanf("%d", &arr[i]);//输入每月预算
}
for (i = 1; i <= 12; i++) {
sum += 300 - arr[i];//剩余钱数
if (sum / 100 >= 1) { //有大于100元
mother += (sum / 100);//存钱
sum = sum - (sum / 100) * 100;//减去存的钱
}
if (sum < 0) {
printf("%d", -i);//钱不够
return 0;
}
}
sum += 120 * mother;
printf("%d", sum);//输出
return 0;
}
```
by GXZJQ @ 2023-12-11 20:38:23
@[GXZJQ](/user/1088732) thanks a lot ,受益匪浅啊 谢谢谢谢
by ONicklgzh @ 2023-12-11 21:21:21
@[ONicklgzh](/user/1132685) 没事的~
by GXZJQ @ 2023-12-11 21:25:26