维德 发表于 2020-8-31 12:05:46

最小公倍数,最大公约数问题

#include<stdio.h>
int f1(int a[],int n)
{
        int i,min;
        min=a;
        for(i=0;i<n;i++){
                if(a<min){
                        min=a;
                }
        }
        return min;
}
int f2(int b[],int n)
{
        int i,max;
        max=b;
        for(i=0;i<n;i++){
                if(b>max){
                        max=b;
                }
        }
        return max;
}
int f3(int a[],int b[])
{
        int i,m,n,t;
        m=f1(a,5);n=f2(b,5);
        t=m<n?m:n;
        for(i=t;i>=1;i--){
                if(n%i==0&&m%i==0){
                        break;
                }
                return i;
        }
int main()
{
        int a={12,18,36,10,8},b={36,42,21,54,63};
        printf("a最小值%d\n",f1(a,5));
        printf("b最大值%d\n",f2(b,5));
        printf("最大公约是%d\n",f3(a,b));
        printf("最小公倍数%d\n",f1(a,5)*f2(b,5)/f3(a,b));
}
}


最后检查出现的问题,怎么也找不到。

baige 发表于 2020-8-31 12:05:47

你看一下f3函数的大括号,和main函数的大括号

baige 发表于 2020-8-31 12:09:33

#include<stdio.h>
int f1(int a[],int n) {
        int i,min;
        min=a;
        for(i=0; i<n; i++) {
                if(a<min) {
                        min=a;
                }
        }
        return min;
}
int f2(int b[],int n) {
        int i,max;
        max=b;
        for(i=0; i<n; i++) {
                if(b>max) {
                        max=b;
                }
        }
        return max;
}
int f3(int a[],int b[]) {
        int i,m,n,t;
        m=f1(a,5);
        n=f2(b,5);
        t=m<n?m:n;
        for(i=t; i>=1; i--) {
                if(n%i==0&&m%i==0) {
                        break;
                }
                return i;
        }
}
int main() {
        int a= {12,18,36,10,8},b= {36,42,21,54,63};
        printf("a最小值%d\n",f1(a,5));
        printf("b最大值%d\n",f2(b,5));
        printf("最大公约是%d\n",f3(a,b));
        printf("最小公倍数%d\n",f1(a,5)*f2(b,5)/f3(a,b));
}
你把mian函数放在f3函数里了
页: [1]
查看完整版本: 最小公倍数,最大公约数问题