求最大公约数可以利用函数指针传地址求吗?为什么啊
我写的两个都能得出正确答案
第一个
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int Max(int num1, int num2)
{
while (num1%num2 != 0)
{
int temp = num1%num2;
num1 = num2;
num2 = temp;
}
return num2;
}
int main()
{
int num1 = 0;
int num2 = 0;
scanf("%d%d", &num1, &num2);
int ret = num1*num2;
num2 = Max(num1, num2);
printf("最大公约数num2 = %d\n", num2);
printf("最小公倍数%d", ret / num2);
system("pause");
return 0;
}
第二个
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int Max(int* num1, int* num2)
{
while (*num1%*num2 != 0)
{
int temp = *num1%*num2;
*num1 = *num2;
*num2 = temp;
}
return *num2;
}
int main()
{
int num1 = 0;
int num2 = 0;
scanf("%d%d", &num1, &num2);
int ret = num1*num2;
num2 = Max(&num1, &num2);
printf("最大公约数num2 = %d\n", num2);
printf("最小公倍数%d", ret / num2);
system("pause");
return 0;
}