连续输入多组(a,b)
(a>=b)a、b大于等于1小于等于100
求各组ab的最小公倍数。
(a的值为-1时程序停止)
会求最小公倍数但是加上连续输入就搞不定了
参考:
#include<stdio.h>
int main()
{
int a, b;
while (scanf_s("%d %d", &a, &b) != EOF && a != -1)
{
for(int i=a;;i++)
if (i % a == 0 && i % b == 0)
{
printf("%d和%d的最小公倍数为%d", a, b, i);
break;
}
}
return 0;
}
#include <stdio.h>
#pragma warning(disable:4996);
int getmax(int a, int b)
{
if (a > b)
return a;
else
return b;
}
int getmin(int a, int b)
{
if (a < b)
return a;
else
return b;
}
int main() {
int a = 0;
int b=0;
int gys;//最大公约数
while (a!=-1)
{
gys = 1;
scanf("%d%d", &a, &b);
if (a == -1)
return 0;
int ma = getmax(a, b);
int mi = getmin(a, b);
//求最大公约数
for (int i = ma; i >= 1; i--)
{
if (ma%i == 0 && mi%i == 0)
{
ma /= i;
mi /= i;
gys *= i;
}
}
printf("%d\r\n", a*b / gys);//最小公倍数等于两数之积除以最大公约数
}
return 0;
}
推荐你使用excel表格来输入多组,然后脚本xlsread()读入你输入的多组数。也不用判断a=-1。
非要输入用 while
All_a_b=[];
while(1)
a_b = input('请输入多组[a,b]:\n');
if( a_b(:,1)==-1)
break;
else
All_a_b=[All_a_b; a_b];
end
end
看看https://blog.csdn.net/m0_52072919/article/details/112687620