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);
}
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--)
----------->