牵风 发表于 2021-10-28 20:11:08

为什么函数值无法返回

#include <stdio.h>

int max( int a, int b );

int main()
{   
    int a, b;

    scanf("%d %d", &a, &b);
    printf("max = %d\n", max(a, b));

    return 0;
}

int max(int a,int b)
{
        int t;
        if(a>b)
        {
                t=a;
                a=b;
                b=t;
                max(a,b)==a;
        }
        else if(b>a)
        {
                t=b;
                b=a;
                a=t;
        max(a,b)==b;
}       


        return max(a,b);
}

嘉岳呀 发表于 2021-10-28 20:15:54

本帖最后由 嘉岳呀 于 2021-10-28 20:20 编辑

嘉岳呀 发表于 2021-10-28 20:20:11

你的意思是这样吗?


#include <stdio.h>

int max( int a, int b );

int main()
{   
    int a, b;

    scanf("%d %d", &a, &b);
    printf("max = %d\n", max(a, b));

    return 0;
}

int max(int a,int b)
{
      int t;
      if(a>b)
      {
                return a;
      }
      else if(b>a)
      {
                return b;
      }      
}

123大厦 发表于 2021-10-28 20:23:27

你函数里面return一个同样的函数,直接无限递归了,你就规定a为最大值,当a>b时返回a,但a<b时交换a,b的值然后在返回a就行了

hrpzcf 发表于 2021-10-28 20:24:06

#include <stdio.h>

int max(int a, int b);

int main()
{
    int a, b;

    scanf("%d %d", &a, &b);
    printf("max = %d\n", max(a, b));

    return 0;
}

int max(int a, int b)
{
    return a > b ? a : b;
}
页: [1]
查看完整版本: 为什么函数值无法返回