没错啊 不理解 帮我改改

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

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


|