10月8号C语言错误代码整理

 错误代码

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int m,k,day;
    scanf("%d %d",&m,&k);
    day =0;
    while (m>=k)
    {
        day = day+(m-m%k);
        m=m/k+m%k;
         
    }
             
    printf("%d",day+m);
    return 0;
}

正确代码

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int m,k,day;
    scanf("%d %d",&m,&k);
    day =0;
    while (m>=k)
    {
        day = day+(m-m%k);
        m=m/k+m%k;
         
    }
             
    printf("%d",day+m);
    return 0;
}
老师分析:嗯,第一个程序有两个大问题,第一个问题是B物就是你那个while循环的条件应该是will m大于零吧,你写成了把零付给M,那么这个表达式就是零,那我要条件就不成立,我要循环一次都不做,嗯,第二个大问题呢,是你没有想明白。嗯,就是你第一次循环之前,你把M负给了D,所以你第一次循环的时候,你把那个M除以K的整数商加给D确实没错,嗯,但是你从第二次循环开始,你仅仅是把M除以K的商加给D就是错的,因为你后面算出来,那个M没有加。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值