//
引入文件:
//#import " 当前工程下的索引文件 " ,相当于拷贝一份。
//#import < 到指定路径下的索引文件 > ,相当于系统文件。
#import "Operator.h"
#pragma mark- 函数
// 定义一个函数。(在 main 函数之外)
// 完整的函数包括三部分:函数声明,函数实现,函数调用
// 函数声明
/*
( 1 )函数定义出现在主调用之前,可以省略函数声明。(但是一般不要省略)
( 2 )函数定义在主调函数之后,需要提前声明函数。
*/
// 函数的分类:
//1. 库函数
//printf();
//scanf();
//strcpy();
// 2. 自定义函数
/*
(1) 无参无返回值。
( 2 )无参有返回值。
*/
// 函数的声明
void printHello( void );
// 函数的实现
void printHello( void ){
printf ( "hello,nimei" );
}
// ( 2 )无参有返回值。
// 返回值为 int 的函数
// 函数声明:
int getCount()
{
//return 后面的数据返回给主调函数。、
// 什么是主调函数:那个函数调用那本函数,谁就是主调函数。
return 34 ;
}
// ( 3 )有参数,无返回值类型的函数
// 函数声明内形参可以与函数实现的形参名不同
void printSumValue( int a, int b);
void printSumValue( int value1, int value2)
{
// 参数如何写:类型 + 参数名(形式参数,称为形参)
// 如果是多个参数,用逗号分隔(需要注意:每个形参前面需要声明参数类型)
printf ( " 两个数的和为 :%d\n" ,value1+value2);
}
// ( 4 )有参数 , 有返回值函数
int sumValue( int a, int b);
int sumValue( int a, int b)
{
return a+b;
}
// 练习: 1. 编写函数 void sayHi(vodi); 应用 for 循环,打印 3 遍我要减肥
//void sayHi(void);
//void sayHi(void)
//{
// for (int i=0; i<3;i++) {
// printf(" 我要减肥 \n");
// }
//}
//2. 编写函数,应用 for 循环,打印 n 遍 “ 我要减肥 ” , n 的值有键盘输入。
//void printfHi(int n);
//void printfHi(int n)
//{
// for (int i=0; i<n; i++) {
// printf(" 我要减肥 \n");
// }
//}
//3. 编写函数,计算 1-n 的和,并将计算结果通过返回值返回, n 的值有键盘输入
//int sumData(int N);
//int sumData(int N)
//{
// int sum=0;// 存储累加结果
// 循环累加结果:
// for (int i=1; i<=N; i++) {
// sum +=i;
// }
// return sum;
//}
//4. 编写函数,返回三个整数的中间值
int minvar( int a, int b, int c);
int minvar( int a, int b, int c)
{
int min,max;
max=a > b?(a>c? a:c):(b>c?b:c);
min=a < b?(a<c? a:c):(b<c?b:c);
return a+b+c-max-min;
}
#pragma mark- 形参实参
// 形参:出现在函数定义中,以假名字来表示函数调用时需要提供的值,作用范围为整个函数范围。
// 实参:(实际参数)
// 出现在函数调用中的表达式。
// 注意:函数调用中,形参会拷贝实参的内容,传递参数事给函数传递信息的一种方法。
#pragma mark- 函数的嵌套调用
/*
c 语言中不允许函数嵌套定义,但是允许函数嵌套调用。
函数嵌套定义:在一个函数定义内在去定义一个函数。
函数嵌套调用:在一个函数内去调用另一个函数。
*/
int main( int argc, const char * argv[]) {
// 函数调用:
// printHello();
// 调用无参无返回值函数
// 不需要写返回值类型,直接写函数名及小括号,就算没有参数,括号也不能省略。
// 函数调用( 2 )
// 调用有返回值,无参数的函数
// 不需要写返回值类型,直接写函数名
// 可以定义一个返回值类型匹配的变量名来保存函数的反馈结果
// int count=getCount();
// printf(" 人数是 :%d\n",count);
// printf(" 人数是 :%d\n",getCount());
// 调用函数( 3 )
// 调用的时候出入的数据称为实参
// 实参可以常量或者常量表达式
// 也可以写变量
//int a=3 ;
// int b=5;
// printSumValue(a, b);
// 以上三句等效于以下一句代码
// printSumValue(3, 5);
// 调用函数 (4)
// 可以直接赋值常量
// 也可以写变量
// int sum=sumValue(6, 8);
// printf("sum=%d\n",sum);
// printf("sum=%d\n",sumValue(6, 8));
// 函数的定义结构
// 返回值类型 函数名(参数列表) {
// 函数体
// return 返回具体数值 ( 若没有返回值,就不用写了 )
//}
// 1.
//sayHi();
// 2.
//int count=0;
// printf("please input count:");
// scanf("%d",&count);
// printfHi(count);
//3.
// int n=0;
// printf("please input n:");
// scanf("%d",&n);
// printf("sum=%d",sumData(n));
//4.
// int a,b,c;
// printf("plese input a,b,b:");
// scanf("%d%d%d",&a,&b,&c);
// printf(" 中间值: %d",minvar(a,b,c));
// printf("%d\n",sumVar(6,9));
// printf("%d\n",subVar(6,9));
// printf("%d\n",mulVar(6,9));
// printf("%.2f\n",devVar(14.2,0.9));
printf ( " 最大值: %d\n" , getMaxOfTwo ( 7 , 8 ));
printf ( " 最大值: %d\n" , getMaxOfThree ( 7 , 8 , 9 ));
printf ( " 最大值: %d\n" , getMaxOfFour ( 7 , 8 , 9 , 10 ));
printf ( " 最大值: %d\n" , getMaxOfFive ( 7 , 8 , 9 , 10 , 11 ));
return 0 ;
//#import " 当前工程下的索引文件 " ,相当于拷贝一份。
//#import < 到指定路径下的索引文件 > ,相当于系统文件。
#import "Operator.h"
#pragma mark- 函数
// 定义一个函数。(在 main 函数之外)
// 完整的函数包括三部分:函数声明,函数实现,函数调用
// 函数声明
/*
( 1 )函数定义出现在主调用之前,可以省略函数声明。(但是一般不要省略)
( 2 )函数定义在主调函数之后,需要提前声明函数。
*/
// 函数的分类:
//1. 库函数
//printf();
//scanf();
//strcpy();
// 2. 自定义函数
/*
(1) 无参无返回值。
( 2 )无参有返回值。
*/
// 函数的声明
void printHello( void );
// 函数的实现
void printHello( void ){
printf ( "hello,nimei" );
}
// ( 2 )无参有返回值。
// 返回值为 int 的函数
// 函数声明:
int getCount()
{
//return 后面的数据返回给主调函数。、
// 什么是主调函数:那个函数调用那本函数,谁就是主调函数。
return 34 ;
}
// ( 3 )有参数,无返回值类型的函数
// 函数声明内形参可以与函数实现的形参名不同
void printSumValue( int a, int b);
void printSumValue( int value1, int value2)
{
// 参数如何写:类型 + 参数名(形式参数,称为形参)
// 如果是多个参数,用逗号分隔(需要注意:每个形参前面需要声明参数类型)
printf ( " 两个数的和为 :%d\n" ,value1+value2);
}
// ( 4 )有参数 , 有返回值函数
int sumValue( int a, int b);
int sumValue( int a, int b)
{
return a+b;
}
// 练习: 1. 编写函数 void sayHi(vodi); 应用 for 循环,打印 3 遍我要减肥
//void sayHi(void);
//void sayHi(void)
//{
// for (int i=0; i<3;i++) {
// printf(" 我要减肥 \n");
// }
//}
//2. 编写函数,应用 for 循环,打印 n 遍 “ 我要减肥 ” , n 的值有键盘输入。
//void printfHi(int n);
//void printfHi(int n)
//{
// for (int i=0; i<n; i++) {
// printf(" 我要减肥 \n");
// }
//}
//3. 编写函数,计算 1-n 的和,并将计算结果通过返回值返回, n 的值有键盘输入
//int sumData(int N);
//int sumData(int N)
//{
// int sum=0;// 存储累加结果
// 循环累加结果:
// for (int i=1; i<=N; i++) {
// sum +=i;
// }
// return sum;
//}
//4. 编写函数,返回三个整数的中间值
int minvar( int a, int b, int c);
int minvar( int a, int b, int c)
{
int min,max;
max=a > b?(a>c? a:c):(b>c?b:c);
min=a < b?(a<c? a:c):(b<c?b:c);
return a+b+c-max-min;
}
#pragma mark- 形参实参
// 形参:出现在函数定义中,以假名字来表示函数调用时需要提供的值,作用范围为整个函数范围。
// 实参:(实际参数)
// 出现在函数调用中的表达式。
// 注意:函数调用中,形参会拷贝实参的内容,传递参数事给函数传递信息的一种方法。
#pragma mark- 函数的嵌套调用
/*
c 语言中不允许函数嵌套定义,但是允许函数嵌套调用。
函数嵌套定义:在一个函数定义内在去定义一个函数。
函数嵌套调用:在一个函数内去调用另一个函数。
*/
int main( int argc, const char * argv[]) {
// 函数调用:
// printHello();
// 调用无参无返回值函数
// 不需要写返回值类型,直接写函数名及小括号,就算没有参数,括号也不能省略。
// 函数调用( 2 )
// 调用有返回值,无参数的函数
// 不需要写返回值类型,直接写函数名
// 可以定义一个返回值类型匹配的变量名来保存函数的反馈结果
// int count=getCount();
// printf(" 人数是 :%d\n",count);
// printf(" 人数是 :%d\n",getCount());
// 调用函数( 3 )
// 调用的时候出入的数据称为实参
// 实参可以常量或者常量表达式
// 也可以写变量
//int a=3 ;
// int b=5;
// printSumValue(a, b);
// 以上三句等效于以下一句代码
// printSumValue(3, 5);
// 调用函数 (4)
// 可以直接赋值常量
// 也可以写变量
// int sum=sumValue(6, 8);
// printf("sum=%d\n",sum);
// printf("sum=%d\n",sumValue(6, 8));
// 函数的定义结构
// 返回值类型 函数名(参数列表) {
// 函数体
// return 返回具体数值 ( 若没有返回值,就不用写了 )
//}
// 1.
//sayHi();
// 2.
//int count=0;
// printf("please input count:");
// scanf("%d",&count);
// printfHi(count);
//3.
// int n=0;
// printf("please input n:");
// scanf("%d",&n);
// printf("sum=%d",sumData(n));
//4.
// int a,b,c;
// printf("plese input a,b,b:");
// scanf("%d%d%d",&a,&b,&c);
// printf(" 中间值: %d",minvar(a,b,c));
// printf("%d\n",sumVar(6,9));
// printf("%d\n",subVar(6,9));
// printf("%d\n",mulVar(6,9));
// printf("%.2f\n",devVar(14.2,0.9));
printf ( " 最大值: %d\n" , getMaxOfTwo ( 7 , 8 ));
printf ( " 最大值: %d\n" , getMaxOfThree ( 7 , 8 , 9 ));
printf ( " 最大值: %d\n" , getMaxOfFour ( 7 , 8 , 9 , 10 ));
printf ( " 最大值: %d\n" , getMaxOfFive ( 7 , 8 , 9 , 10 , 11 ));
return 0 ;
}
//练习:穿件一对文件:Operator.h Operator.m实现4个函数,分别求两个整数的加减乘除。
int sumVar(int a,int b);
int subVar(int a,int b);
int mulVar(int a,int b);
float devVar(float a,float b);
//练习:1.求2个数的最大值。
int getMaxOfTwo(int a,int b);
//练习:2.求3个数的最大值。
int getMaxOfThree(int a,int b,int c);
//练习:3.求4个数的最大值。
int getMaxOfFour(int a,int b,int c,int d);
//练习:4.求5个数的最大值。
int sumVar(int a,int b);
int subVar(int a,int b);
int mulVar(int a,int b);
float devVar(float a,float b);
//练习:1.求2个数的最大值。
int getMaxOfTwo(int a,int b);
//练习:2.求3个数的最大值。
int getMaxOfThree(int a,int b,int c);
//练习:3.求4个数的最大值。
int getMaxOfFour(int a,int b,int c,int d);
//练习:4.求5个数的最大值。
int
getMaxOfFive(
int
a,
int
b,
int
c,
int
d,
int
e);
int sumVar(int a,int b)
{
return a+b;
}
int subVar(int a,int b)
{
return a-b;
}
int mulVar(int a,int b)
{
return a*b;
}
float devVar(float a,float b)
{
//检测参数有效性
//假设计算范围为整数,以-1作为错误代码
if(b==0)
return -1;
return a/b;
}
int getMaxOfTwo(int a,int b)
{
return a>b?a:b;
}
int getMaxOfThree(int a,int b,int c)
{
// int max=getMaxOfTwo(a, b);
// max=getMaxOfTwo(max, c);
int max=getMaxOfTwo(getMaxOfTwo(a, b), c);
return max;
}
int getMaxOfFour(int a,int b,int c,int d)
{
int max=getMaxOfTwo(getMaxOfThree(a, b,c),d);
return max;
}
int getMaxOfFive(int a,int b,int c,int d,int e)
{
int max=getMaxOfTwo(getMaxOfFour(a, b, c, d),e);
return max;
}
{
return a+b;
}
int subVar(int a,int b)
{
return a-b;
}
int mulVar(int a,int b)
{
return a*b;
}
float devVar(float a,float b)
{
//检测参数有效性
//假设计算范围为整数,以-1作为错误代码
if(b==0)
return -1;
return a/b;
}
int getMaxOfTwo(int a,int b)
{
return a>b?a:b;
}
int getMaxOfThree(int a,int b,int c)
{
// int max=getMaxOfTwo(a, b);
// max=getMaxOfTwo(max, c);
int max=getMaxOfTwo(getMaxOfTwo(a, b), c);
return max;
}
int getMaxOfFour(int a,int b,int c,int d)
{
int max=getMaxOfTwo(getMaxOfThree(a, b,c),d);
return max;
}
int getMaxOfFive(int a,int b,int c,int d,int e)
{
int max=getMaxOfTwo(getMaxOfFour(a, b, c, d),e);
return max;
}