大家看这个 用C语言编写的求两个整数的最小公倍数和最小公约数的代码错在哪儿了?

#include"stdio.h"
void main()
{
long int m,n,x,y,i;
printf("输入两个整数:\n");
scanf("%ld,%ld",&m,&n);
{for(i<=m && i<=n;i++;)
if(m%i==0 && n%i==0) x=i;}
{for(y%m==0 && y%n==0;y++;)
if(y<=m) y=m;
if(y<=n) y=n;}
printf("x=%ld,y=%ld",x,y);
}

#include"stdio.h" //改成#include <stdio.h>,编程的好习惯,只有引用自己
void main() //编写的头文件时才使用" "
{
long int m,n,x,y,i; //这里改为long
printf("输入两个整数:\n");
scanf("%ld,%ld",&m,&n);
for(i<=m && i<=n;i++;) //这里改为for(i=1;i<=m&&i<=n;i++)
{
if(m%i==0 && n%i==0)
x=i;
}
for(y%m==0 && y%n==0;y++;) //这里改为for(y=1;y%m==0&&y%n==0;y++)
{
if(y<=m) y=m;
if(y<=n) y=n;
}
printf("x=%ld,y=%ld",x,y);
}

不知道对不对,你自己试试追问

不对 程序可运行 无法求出正确结果

追答

那也是你自己写的,我只是把不对的地方改过来,没有看过算法

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-30
目测是:for(i<=m && i<=n;i++;) 这个错了。
还有你加的那些多余的花括号,怪异。
第2个回答  2012-10-30
i没有赋初值。
相似回答