m0_74922552 2023-03-01 15:43 采纳率: 100%
浏览 15
已结题

C语言代码运行结果一直出错,如何解决?

代码运行结果一直出错,求指正

#include <stdio.h>
int da(int m, int n);
int xiao(int m, int n);
int main()
{
    int m, n;
    scanf_s("m=%d n=%d", &m, &n);
    printf("最大公约数=%d\n最小公倍数=%d", da(m,n), xiao(m,n));
    return 0;
}
int da(int m, int n)
{
    int const sb = m < n ? m : n;
    for (int i = sb;i > 0; i--)
    {
        if (m % i == 0 && n % i == 0) 
        { return i; break; }
    }
}
int xiao(int m, int n)
{
    int const ikun = m > n ? m : n;
    int j;
    for (j = ikun; j > 0; j++)
    {
        if (j % m == 0 && j % n == 0)

        {
             break;
        }
    }
return j;
}

  • 写回答

4条回答 默认 最新

  • Web Security Loop 2023-03-01 15:55
    关注
    • scanf_s函数的格式控制字符串应该使用空格分隔输入项,而不是逗号。

    • 函数da()和xiao()在某些情况下可能不返回值,这会导致编译器报错。应该在函数结尾处加上return语句来返回函数值。

    • 函数xiao()中的循环条件有误,应该是j++而不是++j,否则循环会无限进行下去。此外,循环条件也需要修正为j <= m * n,否则在m、n较大的情况下可能导致无法找到最小公倍数。

    把你的代码修改一下:

    #include <stdio.h>
    
    int da(int m, int n);
    int xiao(int m, int n);
    
    int main()
    {
        int m, n;
        scanf_s("m=%d n=%d", &m, &n);
        printf("最大公约数=%d\n最小公倍数=%d", da(m, n), xiao(m, n));
        return 0;
    }
    
    int da(int m, int n)
    {
        int const sb = m < n ? m : n;
        for (int i = sb; i > 0; i--)
        {
            if (m % i == 0 && n % i == 0)
            {
                return i;
            }
        }
        return 0;
    }
    
    int xiao(int m, int n)
    {
        int const ikun = m > n ? m : n;
        for (int j = ikun; j <= m * n; j++)
        {
            if (j % m == 0 && j % n == 0)
            {
                return j;
            }
        }
        return 0;
    }
    
    
    

    修改后的代码在我的本地环境中可以正确编译和运行,输出结果也与预期一致。

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

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 创建了问题 3月1日

悬赏问题

  • ¥20 COMSOL频域研究,要加法向加速度的话,加速度随时间变化该如何设置?
  • ¥15 无刷电机要通过什么才能做各种动作
  • ¥15 VS2010通过OnCtlColor函数改变radio控件字体的颜色为白色,但是程序运行后发现不起作用,怎么办?
  • ¥15 Qt中实现子线程和管理线程类之间实时通信
  • ¥15 cacls 命令如何解除锁定文件夹?
  • ¥50 C++使用TWAIN协议如何实现A3幅面扫描仪扫描A4横向
  • ¥15 Vue3重构Nuxt3,出现客户端数据和服务端数据不一致的情况
  • ¥15 如何在sql server里完成筛选
  • ¥15 请问为什么我配置IPsec后PC1 ping不通 PC2,抓包出来数据包也并没有被加密
  • ¥200 求博主教我搞定neo4j简易问答系统,有偿