求连续输入多组数的最小公倍数

连续输入多组(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;
}

img


#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

img

看看https://blog.csdn.net/m0_52072919/article/details/112687620