C语言有关取地址

来源:百度知道 编辑:UC知道 时间:2024/09/28 17:31:50
#include <stdio.h>
main()
{
int m,n,s=1;
scanf("%d,%d",&m,&n);
if(m%n==0) printf("%d",m);
else if(n%m==0) printf("%d",n);
else {while (s%m!=0||s%n!=0)
{s=s+1;}
printf("%d",s); }

为什么把倒数第二行的s=s+1改成s=m+1就不对? 既然已经输入了m,为什么不能用m?
}

因为你输入m和n的语句有错误。。。
scanf("%d,%d",&m,&n);这里第一个逗号要去掉。。。或者你输入的时候输入m后输入逗号,再输入n
上面的如果你做的是正确的,那么看这个程序
如果将s=s+1改成s=m+1,那么while循环体内每次执行s=m+1之后,s的值都是固定的,也就是如果m=10,那么s=m+1之后,s=11,每次循环s都是11,这样这个循环就是死循环。。。

不改s貌似也是错的·····
能麻烦你告诉我一下这个程序的功能吗···

如果改的话会陷入死循环,原因正如二楼所说。但看不明白程序想表达什么

你是在求m,n的最小公倍数了,