回 帖 发 新 帖 刷新版面

主题:求大侠们看看这个程序哪里错了


这是一个求最小公倍数的问题,我这样写为什么结果会是0??
#include<stdio.h>
 int main()
 {
  int m,n,j,i;
  scanf("%d%d",&m,&n);
  for(i=1;m*i!=n*i;i++);     /*这里循环体是空语句*/
  j=m*i;
  printf("%d",j);
  return 0;
 }

回复列表 (共4个回复)

沙发

for(i=1;m*i!=n*i;i++); 这是个什么玩意儿?
如果一开始 m不等于n,那么岂不是死循环了

板凳

循环本身有问题,算法也有问题!

3 楼

#include <stdio.h>
int main()
{
    int a,b,i;
        printf("请输入两个正整数:");
    scanf("%d", &a);
    scanf("%d", &b);
    if(a>b)
        i=a;
    else
        i=b;
    while(!(i%a==0&&i%b==0))
        i++;
    printf("%d\n", i);
    return 0;
}

这样可以求最小公倍数

4 楼

谢谢各位大大,我今天 又看了一下,确实是循环本身出了问题了,有时候就是自己走进死胡同了

我来回复

您尚未登录,请登录后再回复。点此登录或注册