king忘川! 2021-12-09 23:47 采纳率: 100%
浏览 36
已结题

返回值为0 不知道怎么回事

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include<stdio.h>
int main()
{
    void fun(int a,int b,int *t);
    int x,y,m;
    int *k;
    k=&m;
    printf("输入两个整数:");
    scanf("%d %d",&x,&y);
    fun(x,y,k);
    printf("最大公约数为 %d",*k);
    printf("\n");
    return(*k);
    
}
void fun(int a,int b,int *t)
{
    int r;
    if(a<b)
    {
        r=a;a=b;b=r;
    }
    r=a%b;
    while(r!=0)
    {
        a=b;b=r;
        r=a%b;
    
    *t=r;
}
}

  • 写回答

1条回答 默认 最新

  • bekote 2021-12-10 00:02
    关注

    29行改为 *t=b

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月21日
  • 已采纳回答 12月13日
  • 创建了问题 12月9日