1163028233 发表于 2020-10-30 20:11:12

我打的程序跟书上一样,但是编译不了

#include <stdio.h>
int main(int a,int b);
int main()
{
        int x,y,z;
        int max(inta,intb);
        printf("input two numbers:\n");
        scanf("%d%d",&x,&y);
        z=max(x,y);
        printf("maxmum=%d",z);
}
int max(inta,intb);
{
        if(a>b)return a;else return b;
}

1163028233 发表于 2020-10-30 20:12:03

第三行书上是 main()
没有int ,因为我用的DEVC++,所以我自己加了int

风过无痕1989 发表于 2020-10-30 20:34:57

本帖最后由 风过无痕1989 于 2020-10-30 22:40 编辑

问题是 int max(int a,int b) 后面没有分号,没有空格,你加了一个分号,int 与后面的变量之间没有空格

#include <stdio.h>

int main()
{       int max(int a,int b);   // 定义函数,类型与变量之间没有空格,程序将它们当成是变量 inta、intb了
      int x,y,z;
      printf("input two numbers:\n");
      scanf("%d%d",&x,&y);
      z=max(x,y);
      printf("maxmum=%d",z);
}
int max(int a,int b)            // 缺少定义
{
      if(a>b)
                   return a;
                else return b;
}

风过无痕1989 发表于 2020-10-30 20:35:27

满意了,请给个最佳答案

sunrise085 发表于 2020-10-30 21:06:06

本帖最后由 sunrise085 于 2020-10-30 21:08 编辑

第二行写错了你把max写成main了,应该是 int max(int a,int b); 这是max函数的声明
把第六行去掉,在第二行已经对max函数声明了,这里就可以去掉了
然后定义max函数的时候,第12行末尾多了一个分号,这一行应该是int max(int a,int b)

风过无痕1989 发表于 2020-10-30 22:39:46

sunrise085 发表于 2020-10-30 21:06
第二行写错了你把max写成main了,应该是 int max(int a,int b); 这是max函数的声明
把第六行去掉,在第二 ...

谢谢指正! 我是急着出去办事,没有仔细看,他的程序也只是在DEV上编译通过了就发了,没有输入数据进行验证
页: [1]
查看完整版本: 我打的程序跟书上一样,但是编译不了