小张要努力. 发表于 2023-9-10 15:44:45

怎么会报错

#include <stdio.h>

int max(int, int);

int max(int x,int y)
{
        if(x > y)
        {
                return x;
        }
        else
        {
                return y;
        }
}
int mian()
{
        int a,b,c;
       
        printf("请输入两个整数:");
        scanf("%d%d",&a,&b);
       
        c = max(a,b);
       
        printf("他们中较大的值是:%d\n",c);
       
        return 0;
}

isdkz 发表于 2023-9-10 15:44:49

这段代码中有一个错误,即函数名 main 被写成了 mian,导致编译器无法识别。将其改为 main 即可解决问题。

修改后的代码如下:

#include <stdio.h>

int max(int, int);

int max(int x,int y)
{
      if(x > y)
      {
                return x;
      }
      else
      {
                return y;
      }
}

int main() // 将 mian 改为 main
{
      int a,b,c;

      printf("请输入两个整数:");
      scanf("%d%d",&a,&b);

      c = max(a,b);

      printf("他们中较大的值是:%d\n",c);

      return 0;
}

陶远航 发表于 2023-9-10 15:44:52

在你提供的代码中,第一行的 #include <stdio.h> 后面没有加换行符,导致编译器将 int 和 max 解析为同一行的两个标识符,进而导致报错。

修改方法:在 #include <stdio.h> 末尾加上一个换行符即可解决此问题。

修改后的代码如下:

#include <stdio.h>

int max(int, int);
int max(int x, int y) {
    if (x > y) {
      return x;
    } else {
      return y;
    }
}

int main() {
    int a, b, c;

    printf("请输入两个整数:");
    scanf("%d%d", &a, &b);

    c = max(a, b);
    printf("他们中较大的值是:%d\n", c);

    return 0;
}


希望这个解答对您有帮助。如果您还有任何其他问题,请随时提问。
如果问题已经解决,请设置最佳答案

Mike_python小 发表于 2023-9-10 15:44:56

问题分析:
根据给出的代码,出现了一些错误和问题。请分析代码并进行修正。

问题解决:
1. 第1行代码 #include <stdio.h> int max(int, int); 应该换行,将其改为两行。
2. 在第13行函数名 mian 错误,应该是 main。
3. 第17行代码缩进多了一个空格,应该删除多余的空格。
4. 第20行代码缺少分号,应该在末尾加上分号。

修复后的代码如下:


#include <stdio.h>

int max(int, int);

int max(int x, int y)
{
    if (x > y)
    {
      return x;
    }
    else
    {
      return y;
    }
}

int main()
{
    int a, b, c;

    printf("请输入两个整数:");
    scanf("%d%d", &a, &b);

    c = max(a, b);

    printf("他们中较大的值是:%d\n", c);

    return 0;
}


修复后,代码应该可以正确运行。如果还有其他问题,请及时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: 怎么会报错