LiZhuo 发表于 2018-10-6 09:35:51

求解决C程序运行问题


为什么运行错误,不知道是哪里出问题?

TyCk 发表于 2018-10-6 11:06:58

本帖最后由 TyCk 于 2018-10-6 12:23 编辑

最后一行
printf("",p/n)
敢问,p/n是什么变量{:10_245:}
变量这里用p的呀……
>>>>>>>>>>>>>>>>>>>>>>>>>>>
好吧,不是这个原因了,是因为scanf的输入要和给出的格式保持一致。
也就是有逗号的话,要打上逗号,不要用空格代替,否则输入的值会出错。{:10_256:}

LiZhuo 发表于 2018-10-6 11:30:46

那么是p/n不对嘛

LiZhuo 发表于 2018-10-6 11:37:28

还有一个问题就是每次调试完程序以后,如果返回来重新修改程序进行编译会出现LINK : fatal error LNK1168: cannot open Debug/xiti5_8.exe for writing这个错误,然后就得重新打开vc6.0,太麻烦,耗时间,对于这个问题你怎么看

TyCk 发表于 2018-10-6 12:21:12

本帖最后由 TyCk 于 2018-10-6 12:25 编辑

LiZhuo 发表于 2018-10-6 11:37
还有一个问题就是每次调试完程序以后,如果返回来重新修改程序进行编译会出现LINK : fatal error LNK1168:...

咳咳,经过一番调试,总算发现了问题所在,十分尴尬……
之所以会不正确,是因为用scanf接收输入的时候,楼主是不是忘记打逗号了,如按照你的代码来看,应该输入"2,3",而不能输入"2 3",不然,会导致m的值不正确,可以实际测试下。
总而言之,问题其实就是scanf的格式要统一。
至于,你说的LINK : fatal error LNK1168: cannot open Debug/xiti5_8.exe for writing这个错误,不出意外的话,是因为没有关闭本次运行的命令窗口,换句话说,其实也就是当前程序没有彻底关闭,还在运行中,当然就不能重新写入,生成新的程序。

西瓜小刚 发表于 2018-10-12 09:26:43

好吧 老哥, 你代码没问题 估计键入的习惯不同 ,楼上说滴很清楚 scanf("%d,%d",&n,&m); 你给的键入方式n,m 你估计是按错 n m了 按的空格,换成一般键入习惯的话 scanf("%d %d",&n,&m); 就行了
#include <stdio.h>
int main()
{
    int p ,r,m ,n ,temp;
        printf("enter two number n,m:");
        scanf("%d %d",&n,&m);
       
        if(n<m)
        {
                temp = n;
                n = m;
                m = temp;
        }
        p = n*m;

        while(m)
        {
                r = n%m;
                n = m;
                m = r;
                printf("m的值为: %dn的值为 :%d \n",m,n);
        }
        printf("最大公约数为 : %d\n",n);
        printf("最小公倍数为 : %d\n",p/n);
       
       
        return 0;
}

xyhero2008 发表于 2018-10-12 17:03:25

运行完全正常,没有问题
页: [1]
查看完整版本: 求解决C程序运行问题