标签:
/1.根据有无返回值:(1)有返回值(2)无返回值
\2.有无参数使用:(1)有参数的使用(2)无参数的使用
所以,函数分为下面四种类型:
返回值 函数名(形式参数列表)
{
函数体
}
(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(“五”);break; 65 66 case6:printf(“六”);break; 67 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