C语言一简单还是不懂

来源:百度知道 编辑:UC知道 时间:2024/06/02 05:56:44
int max(int a,int b); /*函数说明*/
main() /*主函数*/
{
int x,y,z; /*变量说明*/
int max(int a,int b); /*函数说明*/
printf("input two numbers:\n");
scanf("%d%d",&x,&y); /*输入x,y值*/
z=max(x,y); /*调用max函数*/
printf("maxmum=%d",z); /*输出*/
}
int max(int a,int b) /*定义max函数*/
{
if(a>b)return a;else return b; /*把结果返回主调函数*/
}

今天才开始接触C语言~~郁闷~~老不懂~前面的明白了
printf("maxmum=%d",z); /*输出*/ 是指输出两个数中比较大的数对不?
既然都输出来了,那就是说两个数的大小比出来了啦~~那不就应该结束啦吗?
那后面的
int max(int a,int b) /*定义max函数*/
{
if(a>b)return a;else return b; /*把结果返回主调函数*/
是干什么的???把结果返回主调函数是啥意思?

看来LZ的函数调用还真的是不过关哈~

C语言源程序文件在执行的时候都是从main函数开始的,不论main的函数体位于整个源程序的什么位置。按照LZ给出的东西,程序首先找到main的入口从上到下顺序执行语句。

子函数max是你自定义的一个函数,z=max(x,y); 这句话代表一个函数调用过程。当程序从上到下读到这句时,自动转去子函数max,执行他的函数体部分,即if(a>b)return a;else return b;

完成后由return语句带回返回值到main的z=max(x,y);并把返回值赋给z,之后才继续执行main剩下的函数体部分。

LZ不要误认为程序是从上到下写的就一定是从上到下执行。

代码一定要有良好的可读性
int max(int a,int b) /*定义max函数*/
{
if(a>b)
{
return a; //如果a大于b就返回a
}
else
{
return b; //否则返回b
}
}
这个是函数的具体实现,而main前面那个int max(int a,int b); 只是一个申明,因为main中z=max(x,y); /*调用max函数*/ 这里调用了max,但是这时main还不知道max是什么东东,所以加上第一句申明告诉main函数max函数是什么形式的,具体应该到哪里去执行。如果直接把max的函数实现放到main前面,那么第一行就可以需要了。

printf("maxmum=%d",z); /*输出*/ 是指输出两个数中比较大的数对不?
不对,他只是输出z的值到屏幕,
而z的值就是函数max()的返回值,即通过“z=max(x,y); /*调用max函数*/ ”这一句的到,max()是一个函数,他的定义为
int max(int a,int b) /*定义max函数*/
{
if(a>b)return a;else return b; /*把结果返回主调函数*/
}