码迷,mamicode.com
首页 > 其他好文 > 详细

函数部分

时间:2015-05-08 01:38:35      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

一.  函数的概念:函数就是把一个或多个程序功能的封装。函数是复用机制的体现。

 

                                        /1.根据有无返回值:(1)有返回值(2)无返回值

二.函数的分类:

                                        \2.有无参数使用:(1)有参数的使用(2)无参数的使用

        所以,函数分为下面四种类型:

  1. 有参数有返回值函数
  2. 有参数无返回值函数
  3. 无参数无返回值函数
  4. 无参数有返回值函数

三.函数定义的格式与语法:

             返回值  函数名(形式参数列表)

           {

                  函数体

              }

  (1)返回值:函数执行完所返回的数据类型。例如,函数执行完得到的是数字,那么返回值就为int;如果执行完得到的是小数,那么返回值就是float或者是double.

  (2)函数名:函数的名字,这是函数在程序中的唯一标识,函数的调用也需要使用它;C语言中函数名不允许重复;oc中也不支持函数的重载;swift支持重载;

(3)形式参数列表:表示函数调用时需要接收的变量,如果没有参数,可以不写;

                            如果需要接收变量,那么需要定义和参数个数相同的变量;例如:如果要接收两个不同的字符

                                     …func(int num1,double num2)

                                       {

                                         函数体

                                       }

(4)函数体:函数中的主要执行代码,在函数中从上往下,从左往右执行;

如果函数没有返回值,那么可以不用写return语句。如果添加了return作为函数结束的语句,函数右返回值,那么return后面要跟需要返回的结果。

(5)函数的声明:一般函数的定义都会放在main函数的前面,例如下面的void println(),除开花括号函数体部分,放到main函数前面进行声明。

四.编写一个简单的函数应用

 1 #include <stdio.h>
 2 
 3 void println();//函数的声明 
 4 
 5 int main(int argc,const char*argv[])
 6 
 7 {
 8 
 9 println();//调用函数
10 
11 println();
12 
13 return 0;
14 
15 }
16 
17 void println()
18 
19 {
20 
21 printf(“打印除了文字\n”);
22 
23 };

 

 

上面的程序通过调用println()打印出printf中字符;

五.函数的使用:

  (1)无参无返回型函数

       基本语法:

void 函数名()

      函数体;

  }

(2)有参无返回函数

基本语法:

void 函数(形参)

  函数体;

 }

 (3)无参有返回型函数;

  int/float/double/char 函数名()

 函数体;

(4)有参有返回型函数

int/float/double/char 函数名(形参)

  函数体;

    根据不同的参数得到不同结果 ,例如:

                        输入制定范围内数字,求出两个数中较大的数字。

 

 

 1 #include <stdio.h>
 2 
 3 int input();//函数声明
 4 
 5 int getMax();
 6 
 7 int main(int argc,const char *argv[])
 8 {
11 int num=input();
12 
13 //调用input()函数
14 
15 printf(“%d\n”,num+1);
16 printf(“10和11较大的是:%d\n”,getMax(10,11)),;
20 
21 }
22 
23 //写一个函数返回用户输入的数字
24 
25 int input()
26 
27 {
28 
29  printf(“请输入数字:”);
30 
31 int temp;
32 
33 scanf(“%d”,&temp);
34 
35 return temp;
36 
37 }
38 
39 int getMax(int num1,int num2)//比较两数大小,通过封装可以很好的实现功能及可读性。
40 
41 {
42 
43  int max;
44 
45 if(num1>num2)
46 
47 {
48 
49 max=num1;
50 
51 }else
52 
53 {
54 
55   max=num2;
56 
57 }
58 
59 return max;
60 
61 }//return num1>num2?num1:num2 也可以通过三目运算符实现比较两数字大小。
62 
63  

 

 

五.函数的应用

   将输入的数字转换为汉字:

 1
include <stdio.h>
 2 
 3 void printWord(int num);
 4 
 5 int main(int argc,const char*argv[])
 6 
 7 {
 8 
 9   printf(“请输入数字!\n”);
10 
11 int input,num1,num2;
12 
13 scanf(“%d”,&input);
14 
15 num1=input/10;
16 
17 num2=input%10;
18 
19 if(input==10){
22 printWord(10);
24 
25 }else if(num2==0){
26 
27 printWord(num1);
28 
29 printWord(10);
30 
31 }else if(num1==1){
32 
33 printWord(10);
34 
35 printWord(num2);}
36 
37 else{
38 
39  printWord(num1);
40 
41 printWord(10);
42 
43 printWord(num2);
44 
45 }
46 
47 } printf(“\n”);
48 
49 return 0;
50 
51 }
52 
53 void printWord(num)
54 
55 {
56 
57  switch(num){
58 //将汉字封装到函数
59  case 0:printf(“零”);break
60  case 1:printf(“一”);break
61  case 2:printf(“二”);break
62  case 3:printf(“三”);break
63  case 4:printf(“四”);break
64  case 5:printf(“五”);break65
66  case6:printf(“六”);break67
68
69
70 case 7:printf(“七”);break; 71 case 8:printf(“八”);break 72 case 9:printf(“九”);break 73 case 10:printf(“十”);break 74 } 75 //通过函数的封装,直接调用打印,将之前的很多工作都变得更轻松了 68 69 }

 

 

 

输入数字的函数

分析:

输入数字,需要函数返回int类型

如果用户输入错误,需要重新输入,可以通过循环来实现

int inputNum(){

while(1)

  count=scanf(“%d”,&num);

if(count==0)

  {

   输入有误

   }else

输入成功;

}

上面为伪代码:

int intput1()

{

  printf(“请输入一个数字:\n”);

return inputNum();

 

}

int inputNum()

{int count =0,tempNum;

while(1){

printf(“>”);

count=scanf(“%d”,&tempNum);

//取消多余的字符;

while(getchar()!=‘\n’);

if(count>0){break;}}

return tempNum;

//判断输入的是否为数字,吸收多余空格。

}

 

main()

{

int num1=input1();

int num2=input1();

 

return 0;

}

 

 

带有参数的输入数字的函数

 

形式参数和实际参数

 

递归 fflibnoacci 数列

   临界条件    flib(n==0)||flib(n==1) return 1; 

 

    递推关系  flib(n)=flib(n-1)+flib(n-2)

 

 计算阶乘

 

使用递归完成递推运算

根据规律   

(1)推出递推关系

(2)明确临界条件

使用多文件进行开发 

#include    “文件名.h”

函数部分

标签:

原文地址:http://www.cnblogs.com/rosered/p/4486596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!