#include <stdio.h>
void gcdFinder(int num1, int num2, int *result);
int main()
{
int n1, n2, result;
printf("Enter 2 numbers: \n");
scanf("%d %d", &n1, &n2);
gcdFinder(n1, n2, &result);
printf("rGcd2(): %d\n", result);
return 0;
}
void gcdFinder(int num1, int num2, int *result)
{
printf("Initial : %d %d \n",num1,num2);
*result=num1;
if(num2 ==0 ){
return;
}else{
gcdFinder(num2,(num1%num2),&result);
}
}
我试图找到2个输入的GCD,并将结果存储到结果变量中。但是我的代码似乎不起作用,因为它只能存储一次。
输出显示我的num1最终值应为1,但未存储,仍为4。
答案 0 :(得分:3)
在功能gcdFinder
中更改
gcdFinder(num2,(num1%num2),&result);
到
gcdFinder(num2,(num1%num2), result);
^
No & as result is already a pointer here
注意:
在main
中使用&result
是正确的,因为result
中的main
是int