C语言比较2个数字的最大值

① main()
{int a,b,c;
scanf("%d%d",&a,&b);
if(a>b) c=a
else c=b;
printf("\nmax is:%d",c);
}
②main()
{int a,b,c;
scanf("%d%d",&a,&b);
c=max(a,b);
printf("\nmax is %d",c);
}
int max(int x,int y)
{int z;
if(x>y) z=x;
else z=y;
return(z);
}

本人新手,请问下上面这2个程序我个人感觉结果都一样的 为什么第二个程序要专门定义一个“max” ?功能上有什么不一样?顺便问下 有的程序前面加include<stdio.h> 有什么区别?

一、实现效果的确是相同的,不同就定义MAX方法,通过函数max()来进行比较操作,定义函数的好处就是同样的功能方便多次调用。

即:A事件把【比较】函数写在了自己的函数体内;B事件调用了【比较】的函数。

在实际应用中,假设十个事件都需要【比较】功能,此时:A的做法就是将函数体重复写十遍,而B做法只是简单的调用MAX()即可。

二、<stdio.h> 就是指 “standard input & output"(标准输入输出),源代码中如用到标准输入输出函数时,就要包含这个头文件

例如比较函数中的:printf("\nmax is:%d",c)。

其他的包括:

扩展资料:

C语言--调用函数。

创建 C 函数时,会定义函数做什么,然后通过调用函数来完成已定义的任务。

当程序调用函数时,程序控制权会转移给被调用的函数。被调用的函数执行已定义的任务,当函数的返回语句被执行时,或到达函数的结束括号时,会把程序控制权交还给主程序。

调用函数时,传递所需参数,如果函数返回一个值,则可以存储返回值。例如:

调用的max函数:

把 max() 函数和 main() 函数放一块,编译源代码。当运行最后的可执行文件时,会产生下列结果:

Max value is : 200。

参考资料:

百度百科--stdio.h

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-03
第一种写法没有定义函数,而是直接将比较过程写在主函数里,而第二种写法定义了一个函数max(),通过函数max()来进行比较操作,定义函数的好处就是同样的功能方便多次调用,比如在你的这两个例子中,虽然都达到了同样的目的,但是第一种写法如果你想再次进行两个数值的大小比较的话,就又要重新写一遍这个过程,当你在以后做大项目工程的时候,一个操作过程可能是几十行甚至上百行,每次都要重写一遍不仅很累而且造成有大量重复代码不便于程序管理和维护,而写成一个函数,每次使用的时候只需要通过函数名和参数调用就可以了,大大的简化了书写代码的工作量,也让代码更加整洁了。
至于你所说的#include<stdio.h>问题,这是指出程序引用的是哪个头文件,在你的这个程序里,你用到了scanf()和printf()这两个函数来进行输入和输出的操作,这两个函数你并没有写出他们的过程,就可以调用,这是因为这是系统写好的,被包含在这个头文件里,加上这条语句就是告诉编译器,遇到这些没有定义的函数或者属性的时候,可以去指定的头文件中寻找定义,告诉它你是调用的哪个头文件中的。具体的这些预处理指令和编译过程,你可以买本写的详细的书去看看,再多看看MSDN的,上面有很多自带的功能函数,及要使用它们要添加什么头文件引用。本回答被提问者采纳
第2个回答  2013-07-03
你这个程序是省略了头文件的就是include<stdio.h>。并不是不加上这个,每个程序些写这个都是要加头文件的,这两个程序都是一样的,但是第二个程序调用了max函数max函数就是用来比较大小的,max里面的x.y。可以直接由,a,b赋值下来,你看那个max 函数是不是跟第一个程序是一样的思路。调用完max之后,最大值z就返还给c了,这样就比较出大学了,希望能帮到你,不懂之处可以继续问我
第3个回答  2013-07-03
int max(int x,int y)是一个比较用的函数,定义了之后,需要时调用即可而不要每次都要像第一个那样写那么多的if语句
第4个回答  2013-07-03

    定义函数max,使得其他地方也可以调用。

    如果使用了stdio库中的函数,就要包含stdio.h头文件。

相似回答