43~~

int a[12],store=0,save=0,surplus=0,i,total;//total当月可用剩下来的资金
for(i=0;i<12;i++) //surplus是上个月剩余
scanf("%d",&a[i]);
for(i=0;i<12;i++)//i 就应该从零开始,而不是1 ,数组下标从0开始
{
total=surplus+300-a[i];
if(total<0)
{
printf("-%d",i+1);
return 0;
}
save=(total/100)100;
store+=save;
surplus=total-save;//store是累计总共存储
}
printf("%.f",store
1.2+surplus);//还要加上剩余的

return 0;

bug:怎么判断能否进入下一个月? 用total做追踪!!!!
给整数100,200怎么给? %100
当月可用剩下来的资金 VS 上个月剩余
#错误:

for(i=0;i<12;i++)
{
if(300-a[i]+surplus<0)
{printf("-%d",a[i]+surplus-300);
break;}
else
{
surplus=surplus+300-a[i];
store+=surplus%100100;
surplus-=store;
}
printf("%f",store
1.2);
}

循环内错误插入printf("%f", store*1.2) ,导致中途输出无效内容
当检测到“不够用”时,原代码仅  break  跳出循环,但后续代码(如错误的  printf )仍会执行。应在输出  -x  后直接  return 0  终止程序。

收获:跟踪手中的零钱和储蓄金额。total save surplus

posted @ 2025-07-11 17:11  ervgiu28hg34y827  阅读(7)  评论(0)    收藏  举报