先给大家上传一下课程的代码:
一:
main.m文件
main.m里:
#import
#import “Second.h”
#import “Operator.h”
#import “Last.h”
//1.无返回值,无参数
//注:无返回值,适应void,空类型
//void buyRedWine1(){printf(“没(wo)钱(草),买(mai)不(个)了(pi)”);}
2.无返回值,有参数
//void buyRedWine2(float money);
//void buyRedWine2(float money){
// printf(“给了%.2f元\n”,money);
// printf(“被(mai)狗(xiang)咬(yan)了(la),钱(zi)被(ji)叼(xi)走(le)了”);
//}
3.有返回值,无参数
注:有返回值,使用return进行返回,一旦遇到return,就跳出函数
//int buyRedWine3(){
// printf(“都是自己人,给什么钱!一瓶酒算什么,咱兄弟谈钱多伤感情!\n”);
// printf(“买什么酒呢:(1.拉菲,2.果啤)”);
// int type=0;
// scanf(“%d”,&type);
// switch (type) {
// case 1:
// return 1;
// break;
// case 2:
// return 6;
// break;
// default:
// return 0;
// break;
// }
// //return之后的代码不会执行
// printf(“hello\n”);
// }
///4.有返回值,有参数
注:当有多个参数时,用逗号隔开,并且参数类型相同,数据类型也不能省略;不写数据类型,默认是int
//float buyRedWine4(float money,int count);
//float buyRedWine4(float money,int count){
// printf(“给了%.2f元钱,买了%d瓶果啤\n”,money,count);
// float price=49.9;//价格
// //剩余钱
//
// return money-count*price;
//}
编写函数int sumValue(int n):计算1到100的和
//
//int sumValue(int n);
//int sumValue(int n){
// int sum=0;
//
//for (int i=1; i<=n; i ) {
// sum =i;
//}
//return sum;
//}
编写函数dayOfYear(year,month,day),使得函数返回由这三个参数确定的那一天是一年中的第几天.
//int dayOfYear(int year,int month,int day);int sum=0;
//int dayOfYear(int year,int month,int day){
// int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
// if ((year@0==0)||(year%4==0&&year0!=0)) {
// a[1]=29;
// }
//
// for (int i=0; i<month-1;i ){
sum =a[i];
// }
// return sum day;
//}
//编写函数,返回三个整数的中间值
//int middleValue(int a,int b,int c);
//int middleValue(int a,int b,int c){
// int max=a,min=a;
// 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;
//}
//编写函数,返回正整数n中的数字的个数。
//int countOfNumber(int n);
//int countOfNumber(int n){
//
// int count=0;
// do {
// n/=10;
// count ;
// } while (n!=0);
// return count;
//
//}
int main(int argc, const char * argv[]) {
//函数:具有特定功能的代码段
//函数定义
返回值的数据类型 函数名(数据类型1 参数名,数据类型2 参数名2,…){
语句
}
//可以根据有无返回值和 有无参数,把函数分为:
//1.无返回值,无参数
//2.无返回值,有参数
//3.有返回值,无参数
//4.有返回值,有参数
//函数定义在哪里?
//1.函数和函数是并列的关系
//2.函数之间不能嵌套定义
//函数调用
//函数名(参数值1,参数值2,…)
//注:函数调用时,没有参数,括号()不能够省略
// buyRedWine1();
//函数调用可以嵌套
//主调函数
//如果在函数A中调用了函数B,函数A就称为函数B的主调函数
//函数调用的过程
//先回到函数定义中,执行代码,代码执行完后,回到主调函数
// 有参数
//1
// buyRedWine2(20.0);
// //2
// float money=90.0;
// buyRedWine2(money);
//定义变量,接收函数的返回值
//变量类型与函数的返回值类型相同
// int number= buyRedWine3();
// printf(“购买瓶数:%d\n”,number);
// float remainMoney= buyRedWine4(1000,5);
// printf(“剩余:%.2f\n”,remainMoney);
//
//严格的函数包含
//1.函数声明
//2.函数定义
//3.函数调用
//函数声明
//返回值的数据类型 函数名(数据类型1 参数名,数据类型2 参数名2,…);
//函数调用,是向上查找函数,如果找不到函数就没有办法调用
//当调用的函数,定义在主调函数的下方,需要在主调函数的上方进行声明,防止找不到函数,而无法调用函数.
// void printHello(){
// printf(“Hello\n”);
// }
// int sum=sumValue(5);
// printf(“%d\n”,sum);
//
// printf(“%d\n”,sumValue(5));
// // printf(“%d\n”,sum);
// printf(“%d\n”,dayOfYear(2015,04,28));
// printf(“%d\n”, middleValue(8,200,5454));
// printf(“%d\n”,countOfNumber(455454541));
// // 根据变量的作用域,可分为:
// //1.局部变量:定义在函数内部的变量,作用范围从变量定义开始,到函数结束
// //2.全局变量:定义在函数外部的变量,作用范围从变量定义开始,到文件结束
//
// //当使用局部变量时,首先从本层找变量定义,如果没有找到,就扩大范围,去上一层找变量定义,知道找到
// //尽量不要使用全局变量
//
// //程序的入口,不要写过多的代码
// printf(“%d \n”,add(1, 3));
// printf(“%d \n”,minus(1, 3));
// printf(“%d \n”,multiply(1, 3));
// printf(“%d \n”,divide(1, 3));
形式参数(形参),函数定义和函数声明中的参数,没有固定的值,当函数调用时,值才能确定
// //实际参数(实参),函数调用中的参数,有确定的值
// int a=10;
// int b=5;
// minus(a,b);
//
// //函数调用时,实参向形参传递的过程,是一个拷贝的过程
// printf(“%d,%d”,a,b);
// printf(“\n”);
// // 交换两个变量的值
//
// int n=100,m=10;
// swap(n, m);//指针….只交换了形参,实参没变
// printf(“n=%d,m=%d\n”,n,m);
//
int array [5]={2,3,6,1,7};
printArray(array, 5);
//
// // 冒泡排序函数
// bubbleSort(array, 5);
//
// printarray(array,5);
二:Last.h里:
//求两个函数的最大值
int maxValue2(int a,int b);
//求三个数的最大值
int maxValue3(int a,int b,int c);
//四个数的最大值
int maxValue4(int a,int b,int c,int d);
三:Last.m文件里:
int maxValue2(int a,int b){
return a>b?a:b;
}
int maxValue3(int a,int b,int c){
return a>b?(a>c?a:c):(b>c?b:c);
}
//函数嵌套
//return maxValue2(maxValue2(a,b),c);
int maxValue4(int a,int b,int c,int d){
//3 1
return maxValue2(maxValue3(a, b, c), d);
//2 2
return maxValue2(maxValue2(a, b),maxValue2(a, b));
}
四:Operator.h里:
//int add(int a,int b);
//int minus(int a,int b);
//int multiply(int a,int b);
//int divide(int a,int b);
交换两个变量的值
//void swap(int a,int b);
当数组作为函数的参数,因为这时数组是形参,形参的值是不固定的,所以数组的元素个数省略
因为打印数组需要知道数组的元素个数,所以再添加一个参数,用于记录数组元素个数
打印数组的每个元素
//void printArray(int array[],int count);
冒泡排序函数
//int bubbleSort(int array[],int count);
五:Operator.m文件里:
//int add(int a,int b){
// return a b;
//}
//int minus(int a,int b){
// return a-b;
//}
//int multiply(int a,int b){
// return a*b;
//}
//int divide(int a,int b){
// if(b==0){
// return 0;
// }else{
// return a/b;
// }
//}
//
//
//void swap(int a,int b){
//
// int temp=a;
// a=b;
// b=temp;
//}
//void printArray(int array[],int count){
// for (int i=0; iarray[i 1]) {
// int temp=0;
// temp=array[i];
// array[i]=array[i 1];
// array[i 1]=temp;
// }
// }
// }
六:Second.h中:
编写函数,返回正整数n中的数字的个数。
//int countOfNumber(int n);
//
编写函数dayOfYear(year,month,day),使得函数返回由这三个参数确定的那一天是一年中的第几天.
//
//int dayOfYear(int year,int month,int day);
编写函数,返回三个整数的中间值
//int middleValue(int a,int b,int c);
// 编写函数int sumValue(int n):计算1到100的和
//
//int sumValue(int n);
七:Second.m中:
//int countOfNumber(int n){
// int count=0;
// do {
// n/=10;
// count ;
// } while (n!=0);
// return count;
//
// }
//int sum=0;
//int dayOfYear(int year,int month,int day){
// int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
// if ((year@0==0)||(year%4==0&&year0!=0)) {
// a[1]=29;
// }
//
// for (int i=0; ib?(a>c?a:c):(b>c?b:c);
// min=a