c语言 为什么我求最小公倍数,无论我输入什么,都显示3117啊

来源:百度知道 编辑:UC知道 时间:2024/05/12 07:08:43
#include<stdio.h>
main()
{
int m,n,min,max,gbs;
int i;
printf("input m,n: ");
scanf("%d,%d",&m,&n);

if(m<n)
{max=n; min=m;}
else
{max=m;min=n;}

for(i=m*n;i<max;i--)
if(i%m==0&&i%n==0)
{
gbs=i;
}

printf("gbs=%d\n",gbs);
}

问题出的你的for语句:for(i=m*n;i<max;i--) i=m*n是肯定大于i的,所以for循环未执行,gbs未能赋值,就是系统随
机给的数了。

#include<stdio.h>
void main()
{
int m,n,min,max,gbs;
int i;
printf("input m,n: ");
scanf("%d,%d",&m,&n);

if(m<n)
{max=n; min=m;}
else
{max=m;min=n;}

for(i=m*n;i>max;i--) /////////////////////for(i=m*n;i<max;i--)
if(i%m==0&&i%n==0)
{
gbs=i;
}

printf("gbs=%d\n",gbs);
}

#include<stdio.h>
main()
{
int m,n,min,max,gbs;
int i;
printf("input m,n: ");
scanf("%d,%d",&m,&n);

if(m<n)
{max=n; min=m;}
else
{max=m;min=n;}

for(i=max;i<=m*n;i++)/*这里改条件,你原来条件是错的*/
if(i%m==0&&i%n==0)
{
gbs=i;
}

printf("gbs=%d\n",gbs);
}

for(i=m*n;i<max;i--)

----------->