| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 657 人关注过本帖
标题:初学C,求大大们解答
只看楼主 加入收藏
sd4479763
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2010-9-19
结帖率:33.33%
收藏
已结贴  问题点数:10 回复次数:8 
初学C,求大大们解答
#include<stdio.h>

int max(int n1,int n2);

void main()
{
  int num1=3,num2=5,result;
  result=max(num1,num2);
  printf("max=%d\n",result);
  getch();
}

int max(int n1,int n2)
{
  int r;
  if(n1>n2)
    r=n1;
  else
    r=n2;
  return r;
}

这是今天才学的,说实在的,感觉大学才接触C有点晚了,老师完全没解释这些语句每句是干嘛的,就是告诉我们这是判断大小的。
我非常郁闷,首先我想问下  result=max(num1,num2); 是干什么的。然后int max(int n1,int n2);为什么会出现两次,最开始自定义的num1和num2和后面n1,n2被默认成相同函数了么?最后那个return r看了下百度大神,知道是返还值,可是前面没有提及任何R,怎么最后变成了result=5了?
搜索更多相关主题的帖子: 初学 解答 
2010-09-19 18:56
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:1 
  result=max(num1,num2); 这一句是函数调用! int max(int n1,int n2);第一次是函数声明!第二次是函数定义完成大数的交换!
在接下来就是函数参数的传递了!num1的值传给n1,num2的值传给n2(这些都是基本的知识!楼主书本知识掌握不够)函数调用在你这个函数里是要返回值的!返回的r就是返回值!在把返回的值赋值给result
再次建议楼主把书上的基本知识看透!不然以后还是个拦路虎
2010-09-19 20:08
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:1 
我看,猜你是看老潭的书咯,建议你扔掉它买本C Primer plus这本比较详细。

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-19 20:40
ww稻草人
Rank: 5Rank: 5
来 自:陕西西安
等 级:职业侠客
帖 子:57
专家分:309
注 册:2010-5-11
收藏
得分:1 
#include<stdio.h>                         /*  #include<文件1>是预处理,意思为把文件1的内容在编译程序前全部复制到该处。

int max(int n1,int n2);                   /*  这句为函数声明,意思为:通知编译器这是一个函数的形式,以便在后面定义函数体时,编译器进行检查                                             ,int为该函数返回类型(就是该函数运算完返回的是什么类型的值,如果不返回任何值就写void), max是                                           这个函数的名字,括号里面的int n1,intn2是该函数的参数,就是给这个函数传什么类型(两个int型)的值            

void main()                               /*   void意思是该函数返回值为空(就是不返回任何值),main是主函数名,他是一个程序执行的入口, 一                                                个程序中只能有一个主函数。
{
  int num1=3,num2=5,result;              /*  int num1=3为定义一个int型变量并给他初始赋值为3,变量为其值在程序执行过程中可以改变的量,注意                                            “=”为赋值符号,也可以理解为让num1的值等于3的意思。

  result=max(num1,num2);                 /*   这句为函数调用,意思为:将调用max函数后的返回值赋给result。

  printf("max=%d\n",result);             /*   标准格式输出

  getch();                               /*   从键盘输入一个值,并不显示出来。
}

int max(int n1,int n2)                   /*定义max函数的函数体,也就是max函数的内容规则。
{
  int r;                                 /* 定义一个变量r
 
 if(n1>n2)                       /*  if(n1>n2) 条件判断语句,意为:当if后面的括号中条件成立(为真)时,执行其后面的语 句(第一个分号前或紧跟其后的大括号内的语句),如果条件不成立,则执行else后面的语句。你这句的意思是:如果 n1>n2 ,就把n1的值赋给r。如果n1<n2,就把n2的值赋给r。
    r=n1;
  else
    r=n2;
  return r;                             /*   这句为函数返回语句,就是这个函数执行完成时你要反悔的值,一般为return  值;如果不返回任何值的话就直接写个return;不过要注意的是:return语句为这个函数的结束语句,就是提醒编译器你的函数执 行完 这句后这个函数就执行完了,他后面的语句不会再执行了。也就是说本次函数调用结束。
}

我的博客  http://blog..cn/daocaoren020
2010-09-19 21:11
王璐
Rank: 2
等 级:论坛游民
帖 子:126
专家分:54
注 册:2010-7-26
收藏
得分:1 
其实吧,你现在完全没有必要搞得特别懂,这些在以后都会分章节详细介绍的,老师只是想让你们接触下
2010-09-19 21:13
雾雨淼淼
Rank: 2
来 自:甘肃金昌
等 级:论坛游民
帖 子:85
专家分:89
注 册:2010-8-17
收藏
得分:1 
第一次出现int max(int n1,int n2);是声明后来要调用的函数max,返回值是整型,每一个程序都是从main函数开始执行的,起初声明是为了让编译器识别它是一个用户自定义的函数,如果把它放在main函数之前就不需要声明了,n1,n2为函数的形式参数,用于在函数中参加运算,C语言中都是值传递,而num1和num2才是实参,才是运算中真正参加运算的,将运算后的值用return返回到中函数中,用于后来的输出,希望能帮到你,刚开始学习C语言,还是好好看看C语言的教材,然后再试着编程序
2010-09-19 22:16
Crocodile_JX
Rank: 5Rank: 5
等 级:职业侠客
帖 子:161
专家分:335
注 册:2010-9-13
收藏
得分:1 
支持5楼说的 ~~~“其实吧,你现在完全没有必要搞得特别懂,这些在以后都会分章节详细介绍的,老师只是想让你们接触下 ”
我也是在去年学的,也是老谭的书。老师会在后面说的
2010-09-20 09:21
迪拜天
Rank: 2
等 级:论坛游民
帖 子:8
专家分:12
注 册:2010-9-20
收藏
得分:1 
以下是引用遮天云在2010-9-19 20:08:38的发言:

  result=max(num1,num2); 这一句是函数调用! int max(int n1,int n2);第一次是函数声明!第二次是函数定义完成大数的交换!
在接下来就是函数参数的传递了!num1的值传给n1,num2的值传给n2(这些都是基本的知识!楼主书本知识掌握不够)函数调用在你这个函数里是要返回值的!返回的r就是返回值!在把返回的值赋值给result
再次建议楼主把书上的基本知识看透!不然以后还是个拦路虎
对,楼主刚开始学,先把基础知识弄回,不要一上来就搞这些语句,基础回了,以后这些都会懂得。
2010-09-20 10:32
wangjianhui
Rank: 8Rank: 8
来 自:^帅帅城^
等 级:蝙蝠侠
威 望:2
帖 子:353
专家分:745
注 册:2010-3-19
收藏
得分:1 
以下是引用ww稻草人在2010-9-19 21:11:22的发言:

#include                         /*  #include<文件1>是预处理,意思为把文件1的内容在编译程序前全部复制到该处。

int max(int n1,int n2);                   /*  这句为函数声明,意思为:通知编译器这是一个函数的形式,以便在后面定义函数体时,编译器进行检查                                             ,int为该函数返回类型(就是该函数运算完返回的是什么类型的值,如果不返回任何值就写void), max是                                           这个函数的名字,括号里面的int n1,intn2是该函数的参数,就是给这个函数传什么类型(两个int型)的值            

void main()                               /*   void意思是该函数返回值为空(就是不返回任何值),main是主函数名,他是一个程序执行的入口, 一                                                个程序中只能有一个主函数。
{
  int num1=3,num2=5,result;              /*  int num1=3为定义一个int型变量并给他初始赋值为3,变量为其值在程序执行过程中可以改变的量,注意                                            “=”为赋值符号,也可以理解为让num1的值等于3的意思。

  result=max(num1,num2);                 /*   这句为函数调用,意思为:将调用max函数后的返回值赋给result。

  printf("max=%d\n",result);             /*   标准格式输出

  getch();                               /*   从键盘输入一个值,并不显示出来。
}

int max(int n1,int n2)                   /*定义max函数的函数体,也就是max函数的内容规则。
{
  int r;                                 /* 定义一个变量r
 
 if(n1>n2)                       /*  if(n1>n2) 条件判断语句,意为:当if后面的括号中条件成立(为真)时,执行其后面的语 句(第一个分号前或紧跟其后的大括号内的语句),如果条件不成立,则执行else后面的语句。你这句的意思是:如果 n1>n2 ,就把n1的值赋给r。如果n1
这兄弟已经给你解释的很清楚了,其实你现在刚上大学,老师刚教的内容只是让你们看看这些语句,是为了以后逐一的讲做铺垫,学每章节的时候一定要预习,要不该跟不上了,这是我的经验。

加油
2010-09-20 10:39
快速回复:初学C,求大大们解答
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.104118 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved