C语言津津的储蓄计划

麻烦帮忙看一下怎么修改,输入时不到12个数字就输出了。

img


#include
#include
#include
int main()
{
int a[12];
int sum,left = 0,save = 0,L = 0;
for(int i=1;i<=12;i++){
scanf("%d",&a[i]);
left=300-a[i]+L;
if(left<0){
printf("%d",&i);
}
L=left%100;
sum+=left*1.2+L;
}
printf("%d",&sum);
return 0;
}

代码中,所有的输出加&取地址符号干嘛?把&去掉。
循环条件也不对,数组越界了。初始值是0,循环到11。

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
int a[12];
int left = 0,save = 0,L = 0;
double sum=0;
for(int i=0;i<12;i++){
scanf("%d",&a[i]);
left=300-a[i]+L;
if(left<0){
printf("-%d",(i+1));
return 0;
}
save=left/100;
L=left%100;
sum=sum+save*100;
}
printf("%.0f",1.2*sum+L);
return 0;
}

for(int i=1;i<=12;i++){
i不能等于12,会数组越界
printf输出整数不需要取地址,去掉&符号

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632