c++编程问题,初学者跪求答案 定义如下函数: void compute(float a, flo

2025-03-13 14:27:49
推荐回答(2个)
回答1:

C++程序:


#include


using namespace std;


void compute(float a, float b, float *sum, float *sub, float *pro)

{

*sum = a + b;

*sub = a - b;

*pro = a * b;

}


void gcd_gcm(int n, int m, int *gcd, int *gcm)

{

int temp;

int n1, m1;

n1 = n;

m1 = m;


if(n < m)

{

temp = n;

n = m;

m = temp;

}


//辗转相除法求最大公约数

while(m != 0)

{

temp = n % m;

n = m;

m = temp;

    }

*gcd = n;

*gcm = n1 * m1 / *gcd;

}


void main()

{

float a = 1.2;

float b = 2.5;

float sum, sub, pro;


int n = 12;

int m = 16;

int gcd;

int gcm;


compute(a, b, &sum, &sub, &pro);


cout<<"sum = "<

cout<<"sub = "<

cout<<"pro = "<


gcd_gcm(n, m, &gcd, &gcm);

cout<<"最大公约数 = "<

cout<<"最小公倍数 = "<

}


运行效果:

回答2:

#include 

using namespace std;

void compute(float a, float b, float &sum, float &sub, float &pro);

void commonnum(int a, int b, int &large, int &least);

int main() {
    float a = 1.125f;
    float b = 8.725f;
    float sum, sub, pro;

    compute(a, b, sum, sub, pro);

    printf("sum=%.3f, sub=%.3f, pro=%.3f\n", sum, sub, pro);

    int m=27, n=15, la, le;
    commonnum(m, n, la, le);
    printf("最大公约数:%d, 最小公倍数:%d\n", la, le);

    return 0;
}

void compute(float a, float b, float &sum, float &sub, float &pro) {
    sum = a+b;
    sub = a-b;
    pro = a*b;
}

void commonnum(int m, int n, int &large, int &least) {
    int a=m, b=n;
    while (a!=b) {
        if (a>b) a=a-b;
        else b=b-a;
    }
    large=a;
    least=m*n/a;
}