大家晚上好呀,今天要给大家解决昨天遗留的问题,就是这个不管我输入啥都是输出第一个
然后就是我师兄之前说的血与泪的教训,就是之前他强调了无数次在scanf里两个%d%d间不要用空格或逗号,否则输入的时候没有按照这个格式会出问题,而且编译器不会提示哪里出错,果然我这次就犯了。找了好久,又问了好多人,终于找到错的地方啦,开心。
然后我们把scanf_s里面的空格删掉,就正常啦。然后我们也可以求这两个数的最小公倍数,只要我们拿这俩数相乘,然后÷最大公约数,就可以实现啦。下面是我的代码。大家可以借鉴下
还有代码我以后尽量都会放出来,大家也可以复制去试试,然后记得复制过去的时候如果我有scanf_s 的话部分编译器可能过不了,所以如果过不了,就把它变成scanf就好啦
好啦,今天的分享到此结束,我们明天见。最后附上今天的代码。
代码:
#include <stdio.h>
int max(int i, int j);
int small(int i, int j);
int main()
{
int u, v, m, n, o, p;
printf("输入两个整数:");
scanf_s("%d%d", &u, &v);
o = max(u, v);
p = small(u, v);
printf("最大公约数是 % d", o);
printf("\n");
printf("最小公倍数是%d", p);
return 0;
}
int max(int i, int j)
{
int r = 0;
if (i > j)
{
while ((r = (i % j)) != 0)
{
i = j, j = r;
}
return j;
}
if (i <= j)
{
while ((r = j % i) != 0)
{
j = i, i = r;
}
return i;
}
}
int small(int i, int j)
{
int r;
r = (i * j) / max(i, j);
return r;
}