banyleader 发表于 2008-7-11 15:02

新手,清大家帮忙

关于输出三个数中的最大数。编译不通过
#include<stdio.h>
#include<math.h>
main()
{
  int a,b,c,A,B;
  scanf ("%d,%d,%d",&a,&b,&c);
  printf ("\n");
  A=max(a,b);
  B=max(A,c);
  printf("%d",B);
  
  int max(int x,int y)
  {
    int z;
    if (x>y)
       z=x;
    else z=y;
    return(z);   
  }
}

寒秋 发表于 2008-7-11 15:20

你改一下就可以了
#include<stdio.h>
int max(int A,int B);
void main()
{
  int a,b,c,A,B;
  scanf ("%d,%d,%d",&a,&b,&c);
  printf ("\n");
  A=max(a,b);
  B=max(A,c);
  printf("%d",B);
}
  
int max(int x,int y)
{
   int z;
   if (x>y)
      z=x;
   else z=y;
   return(z);   
}[tk05]

寒秋 发表于 2008-7-11 15:22

把#include<math.h>
换成int max(int A,int B);
[tk03]

banyleader 发表于 2008-7-11 16:09

[quote][bo][un]寒秋[/un] 在 2008-7-11 15:22 的发言:[/bo]

把#include
换成int max(int A,int B);
[tk03] [/quote]
恩,通过了,谢谢,能告诉我为什么吗

切忌浮躁 发表于 2008-7-11 16:29

要先声明,后使用。

水中无月 发表于 2008-7-11 16:55

int max(int A,int B);

int max(int x,int y)
{
...
}
2#这个声明与后面的定义的参数名称不相符啊

mqh21364 发表于 2008-7-11 17:52

回楼上的

声明的定义只要参数的个数,类型,顺序相同就行,不用参数名也一样。

声明不写参数名也是可以的。

int max(int, int);

int max(int x, int y)
{
...
}

但是不大推荐。

水中无月 发表于 2008-7-11 17:57

哦,又长知识了[em01]

liuzhedash 发表于 2008-7-11 20:28

我想是{}使用上的问题,比较大小的max函数可以单独用一个{},即为:
void main()
{...}
int max(int x,int y)
{...}
这样不同模块,无所谓是否先行声明。
不才愚见,如有错误,多多包涵!

mqh21364 发表于 2008-7-11 20:48

楼上的,方法先声明再定义才是王道!

liuzhedash 发表于 2008-7-11 20:52

就是先编max函数,然后main,是吗?

页: [1]

编程论坛