编译出来为什么显示的是最小值?不应该是最大值吗?

编译出来不应该是显示最大值吗? 为什么显示的是最小值?是哪里出错了吗? 我怎么找不出来 感觉这个代码没问题

img

应该是你输入格式有问题,你的scanf那行格式化里面有逗号,输入也要一样遵循格式,不然会有问题

  • 我也看不懂哪里有错
    您是在线答题吧,有拷贝代码到本地run没?

【以下回答由 GPT 生成】

问题的根源在于在函数main中没有提前声明max函数,在调用max函数时,编译器无法识别函数的返回类型,从而默认为int类型。为了解决这个问题,您可以按照以下步骤进行修改:

  1. 把函数max的定义移动到函数main之前。这样可以避免函数max未定义的问题。
  2. 在函数main之前添加函数max的声明,以明确函数的返回类型和参数类型。
  3. 运行程序并输入两个整数,它将找到两个数中的最大值并打印出来。

以下是修改后的代码:

#include<stdio.h>

// 函数声明
int max(int x, int y);

int main() {
  int a, b, c;
  scanf("%d,%d", &a, &b);
  c = max(a, b);
  printf("最大值是=%d\n", c);
  return 0;
}

// 函数定义
int max(int x, int y) {
  int z;
  if (x > y) {
    z = x;
  } else {
    z = y;
  }
  return z;
}

请运行修改后的代码,您将获得预期的最大值结果。如果代码问题仍然存在,请提供完整的错误信息以便我更好地帮助您解决问题。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^