C语言for循环小问题

a昊a 2017-10-29 04:28:54
这个是代码 #include <stdio.h> #include <math.h> #define CHANGE 300 #define MONTHS 12 int main(void) { int sum = 0; int rest = 0; int storage; int chan = 0; int cost[MONTHS]; for(int i=0;i<MONTHS;i++) scanf("%d",&cost[i]);//输入每个月画的钱 for(int i=0;i<MONTHS;i++) { chan = CHANGE + rest; rest = chan - cost[i]; if(rest<0) printf("Month: %d rest: %d",i,rest); else { storage = floor((rest/100)) * 100; rest -= storage; sum += storage; } } printf("%d",sum); printf("%d",(sum +sum*0.2)); } 下面是题目 运行结果很不对
...全文
848 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
faihung 2018-01-17
  • 打赏
  • 举报
回复
楼主的打印格式化输出那里不对,上面都给你指出了。
qq_41557518 2018-01-11
  • 打赏
  • 举报
回复
感觉csdn机制很好,有好的问题还可以跟着学习一波,加油啊
a8853881029 2018-01-06
  • 打赏
  • 举报
回复
学习了,以后好好答题,评论赚积分。
a昊a 2018-01-06
  • 打赏
  • 举报
回复
谢谢
大树参天 2017-11-08
  • 打赏
  • 举报
回复
楼上的,建议输出用printf("%.1f",(sum + sum*0.2)); 否则有的编译器如GUN GCC中无法正常输出
自信男孩 2017-10-30
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <math.h>

#define CHANGE 300
#define MONTHS 12

int main(void)
{
    int sum = 0;
    int rest = 0;
    int storage;
    int chan = 0;
    int cost[MONTHS];

    for(int i=0;i<MONTHS;i++)
        scanf("%d",&cost[i]);//输入每个月画的钱

    for(int i=0;i<MONTHS;i++)
    {
        chan = CHANGE + rest;
        rest = chan - cost[i];
        if(rest<0)
            printf("Month: %d rest: %d", i, rest);
        else
        {
            storage = floor((rest/100)) * 100;
            rest -= storage;
            sum += storage;
        }
    }
    printf("%d\n", sum);
    printf("%.1lf",(sum + sum*0.2));
}
赵4老师 2017-10-30
  • 打赏
  • 举报
回复
printf里面的%和变量的一一对应关系 scanf里面的%和变量以及变量前加不加&的一一对应关系 是C代码中非常容易出错的地方,而且通常编译还不出错。 所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
paschen 2017-10-29
  • 打赏
  • 举报
回复
printf("%d", (sum + sum*0.2)); 这里的 (sum + sum*0.2)是个double类型的数,你用的是整数方式输出

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧