m0_74153183 2022-10-20 22:00 采纳率: 95.5%
浏览 28
已结题

为什么我的代码有问题(循环结构)

问题遇到的现象和发生背景

津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 300300 元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上 20%20% 还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 100100 元或恰好 100100 元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

例如 1111月初津津手中还有 8383 元,妈妈给了津津 300300 元。津津预计1111月的花销是 180180 元,那么她就会在妈妈那里存 200200 元,自己留下 183183 元。到了 1111 月月末,津津手中会剩下 33 元钱。

津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

现在请你根据 20042004 年 11 月到 1212 月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到 20042004 年年末,妈妈将津津平常存的钱加上 20%20% 还给津津之后,津津手中会有多少钱。

输入格式
1212 行数据,每行包含一个小于 350350 的非负整数,分别表示 11 月到 1212 月津津的预算。

输出格式
一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出 -X−X,XX 表示出现这种情况的第一个月;否则输出到 20042004 年年末津津手中会有多少钱。
为什么我的代码有问题

用代码块功能插入代码,请勿粘贴截图
#include<stdio.h>
int main()
{
    int a[100],sum1=0,sum2=0,sum3=0;
    for(int i=0;i<12;i++) 
    {
        scanf("%d",&a[i]);
    }
    for(int i=0;i<12;i++)
    {
        if(a[i]<=300&&a[i]>200)
        {
            sum1+=300;
            sum2+=(300-a[i]);
        }
        if(a[i]>100&&a[i]<=200)
        {
            sum1+=200;
            sum2+=(200-a[i]);
            sum3+=100;
        }
            if(a[i]>0&&a[i]<=100)
        {
            sum1+=100;
            sum2+=(100-a[i]);
            sum3+=200;
        }
        if((sum2+300)<a[i+1])
        {
            printf("-%d",i+2);
        return 0;
        }
    }
        printf("%d",sum2+sum3*1.2);
    return 0;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

为什么输出错误

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-10-21 08:27
    关注
    
     if((sum2+300)<a[i+1])
            {
                printf("-%d",i+2);
            return 0;
            }
    

    这个地方你考虑i值为11的情况了吗?这时候a[i+1]就是a[12],并没有输入值,你跟它比较什么呢???

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 10月20日

悬赏问题

  • ¥15 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路