C语言函数的调用问题

看下面这个程序:
#include <stdio.h>
int maxmum(int x,int y,int z);
int main()
main()
{ int i,j,k;
printf("i,j,k=?\n");
scanf("%4d%4d%4d",&i, &j, &k);
maxmum(i,j,k);
getch();
return 0;
}

maxmum (int x,int y,int z)
{
int max;
max=x>y?x:y;(;是分号,前面一个是冒号)
max=max<z?max: z;
printf("The maxmum value of the 3 data is %d\n",max);
}

问:1:前面一个花括号里的内容是干什么用的啊?它起什么作用啊?后面一个花括号呢?它是在调用前面的函数吗?
2:这个程序的每一步的意思以及作用希望都能给我解释一下啊。
3前面一个花括号都是声明部分吗?
。。我也不知道啊,希望有知道的能告诉我啊,说的时候尽量详细一点,谢谢啊。悬赏100分。,我想把这个问题给弄清楚,真的希望知道这个问题的答案,有懂的来帮帮我,小弟跪求答案啊!

1.#include <stdio.h>
2.int maxmum(int x,int y,int z);
3.int main()
4.main()
5.{ int i,j,k;
6. printf("i,j,k=?\n");
7. scanf("%4d%4d%4d",&i, &j, &k);
8. maxmum(i,j,k);
9. getch();
10. return 0;
11.}

12.maxmum (int x,int y,int z)
13.{
14.int max;
15.max=x>y?x:y;(;是分号,前面一个是冒号)
16.max=max<z?max: z;
17.printf("The maxmum value of the 3 data is %d\n",max);
18.}

按每行说明:
1。这里是包含的头文件,头文件里头有你使用到的一些函数。比如你使用的printf()函数,这个函数你在本程序里头没有定义它的功能,那么本程序上哪知道呢。就是这个头文件。头文件里头有这个函数功能的具体定义。
2。这里是函数原型的声明,可以写成这样 int maxmum(int,int,int)因为声明的是原型,就不需要在声明里头把形式参数也给定义上了。当然你定义上也是对的。
3。这是主函数,int main()是符合c标准的,规定了main()函数的的返回值类型。有些人就写个main(),其实这样不符合c标准。一般的我喜欢 这样 int main(void) 表示main()函数没接受参数,返回值是int类型。
4。这一行我觉得是不是你重复了,这一行应该用第3 行来代替。把这一样去掉
5。这里是定义三个整形变量。
6。printf输出函数用来格式化输出。
7。scanf()用来格式花输入。这个函数要弄的很清除是需要你花一些精力的。
8。这里调用maxmun()函数。还记得第2 行对此函数的声明吗? 正因为你对它声明了,所以main()函数在这里调用它的时候就知道,这个家伙我认识。可以用它。否则,它就不认识它,编译的过程就会出错。
9。这里是一个从键盘获得输入的一个函数。其实它在这里的功能是暂停一下,你随便输入一个字符,就马上执行return 0。程序就执行完毕。要不然,程序的执行过程会一闪而过。(学到后来你就会知道,这样的用法是存在安全隐患的。具体怎么样需要你进一步学习才能懂)
10。这里返回一个0 说明main()函数执行完毕,而且是成功返回。
11。这个花括弧表明mian()函数的主体结束。

12。这里是maxmum()函数的功能的定义。下面的一对花括弧,就是maxmum()具体能实现什么功能的代码区。
13.一对花括弧的开始
14。定义一个整形变量,用来存放最大的数。
15.这里是一个if条件表达式。也就是问:x是不是大于y?判断这个条件是不是真。如果是真,那么就把后面的x 赋值给max 如果不是真,那么把x冒号后面的y赋值给max
16。类似于15的分析。
17。格式化输出max
18。maxmum()函数功能代码段结束。

如果你需要调用一个你自己编写的函数,那么你一定要在调用的位置之前就声明该和函数的原型。也就是告诉编译器,这个函数你认识,只是它具体是干什么的。我在后面有定义,你不要担心。于是编译器就会顺利通过编译。

说了这么多,手都累了,希望你能满意!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-07-29
帮你修改好了:

#include <stdio.h> //包含头文件,比如getchar()的函数,就在这个头文件中
int maxmum(int x,int y,int z); //声明函数maxmum()
int main()///主函数,是c语言的入口函数
{
int i,j,k; //声明变量i,j,k

printf("i j k=?\n"); //打印提示语
scanf("%d%d%d",&i, &j, &k); //接受输入到变量i,j,k
maxmum(i,j,k); //调用函数maxmum
getchar(); //获取一个字符,让程序停一下,便于看清结果
return 0;
}

maxmum (int x,int y,int z) //函数maxmum 的实现
{
int max; //声明变量max

max=x>y?x:y;//(;是分号,前面一个是冒号) //max取x和y的大者
max=max>z?max: z; //max与z比较,取大者
printf("The maxmum value of the 3 data is %d\n",max); //输出最大的一个数,也就是max
return 0;
}
第2个回答  2008-07-29
???你在学c?很诡异..看教材啊,谁能说的比教材讲的详细透彻精辟?谭浩强大名不是盖的.你最好从头学,别想一步登天,从基础一步一步学
这程序就是求3个数中的最大的
第一个花括号是main函数,作用就是输入三个数(用scanf),第二个花括号是maxmum函数,作用就是比较3个数的大小.
在main函数中调用maxmum函数
第3个回答  2008-07-29
//你的程序也有问题 你看看看这个
#include <stdio.h>
int maxmum(int x,int y,int z); //函数声明:被调函数在主函数之后必须声明
//主函数
main()
{
int i,j,k,x;
printf("i,j,k=?\n");
scanf("%4d%4d%4d",&i, &j, &k); //分配给你要比较的数存储空间
x=maxmum(i,j,k); //调用函数x得到的是下面被掉函数返回的值
printf("%d\n",x) ;//输出
}
//主程序完成

maxmum (int x,int y,int z) //被掉函数:比较3个数的大小
{
int max;
max=x>y?x:y;//(;是分号,前面一个是冒号) //比较前2个的大小得到大的给max
max=max>z?max: z; // max和第3个比大的依然给max
return max; //返回max
}
//第1对大花括号上主函数的作用域
//第2对是被调函数的作用域
第4个回答  2008-07-29
呵呵,比如作饭菜
有三个人,一个人会淘米,一个人会生火,一个人会看饭熟
这样,你会怎么调用他们去干活
相似回答