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日

悬赏问题

  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗