小白菜何时能拿下computer 2024-03-12 01:57 采纳率: 0%
浏览 2

0基础上机报错求解答

img


友们,在看赵海英的c语言,讲到求两个数的最大公倍数,利用辗转相减的办法,但是照着她的代码上机程序报错了。这是哪里出错了呀

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-12 01:58
    关注

    引自免费微信小程序:皆我百晓生

    在你提供的代码和编译错误信息中,问题并不在于C语言代码本身,而是编译链接阶段出现了错误。错误信息表明:

    d:\桌面\devcpp\mingw64\x86_64-w64-mingw32\bin\ld.exe: cannot open output file D:\桌面\c语言练习\练习8.exe: Permission denied
    

    这意味着编译器无法打开或创建输出文件(即你的可执行文件“练习8.exe”),原因是权限被拒绝。这通常有以下几种可能原因:

    1. 程序正在运行:之前编译生成的“练习8.exe”程序可能仍在运行,导致新编译时无法覆盖同名文件。

      解决方案:关闭已经运行的“练习8.exe”程序,或者更改输出文件名称。

    2. 文件被锁定:有可能是由于操作系统的文件锁定机制,例如该文件被其他进程占用或以某种方式被锁定。

      解决方案:检查是否有其他程序正在使用此文件,并确保没有资源冲突。重启电脑也可能解决问题。

    3. 权限不足:当前用户账户对“D:\桌面\c语言练习”目录没有足够的写入权限。

      解决方案:右键点击“D:\桌面\c语言练习”目录 -> 属性 -> 安全选项卡,检查并确认当前用户是否具有修改和写入权限,如有需要,请赋予相应的权限。

    对于代码本身,我注意到末尾return 1;前少了一个右大括号}来结束main函数,修正后的代码应如下所示:

    #include<stdio.h>
    
    int main() {
        int n, m;
        printf("请输入n和m的值:\n");
        scanf("%d%d", &n, &m);
    
        while(m != n) {
            while(m > n) {
                m = m - n;
            }
            while(n > m) {
                n = n - m;
            }
        }
    
        printf("最大公约数(或公倍数)为:%d\n", m);
        
        return 0;
    }
    

    请先解决编译环境的问题,然后尝试编译修复后的代码。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月12日

悬赏问题

  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵