Function.h文件:
#import <Foundation/Foundation.h>
// 创建一个类 分为2部分
// .h文件 接口文件 头文件 写函数的声明部分
// .m文件 实现文件 写函数的实现部分
// 声明一个计算两个数的和的函数
int sumSum(int num1, int num2);
// 声明一个函数 进行冒泡排序 打印就可以
// 注意数组作为参数时 不但要传入数组,还要传入 数组的长度(数组的元素个数)
void sortArray(int array[], int count);
Function.m文件:
#import "Function.h"
// 函数的实现
int sumSum(int num1, int num2)
{
return num1 + num2;
}
// 冒泡排序 实现
void sortArray(int array[], int count)
{
for (int i = 0; i < count - 1; i++) {
for (int j = 0; j < count - 1 - i; j++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
for (int i = 0; i < count; i++) {
printf("%d ", array[i]);
}
}
main.m文件:
#import <Foundation/Foundation.h>
// 引入头文件
// 引入系统头文件 使用<>
// 引入自定义文件 使用""
#import "Function.h"
// 无返回值无参数的函数
void myPrintf(){
printf("我是一个无返回值无参数的函数\n");
printf("我即将使用return\n");
// return作用
// 1.无返回值时 直接结束 return都不执行
// 2.有返回值时 结束的同时 把值返回去
return;
printf("我已经使用return\n");
}
// 有返回值无参数的函数
int returnValue()
{
return 10;
}
// 参数的两种形式:
// 1.实际参数 函数调用时的参数
// 2.形式参数 函数声明时的参数
// 函数调用时候 相当于实际参数赋值形式参数 参数间传递 是一个值的传递
// 有返回值有参数的函数 (参数: 参数类型 + 参数名字)
// 多个参数中间用逗号隔开
// 注意: 参数的名字不能相同
// 函数的参数需要在函数体当中去使用
// 计算两个整数的和
int sumNumber(int num1 , int num2)
{
return num1 + num2;
}
// 无返回值 有参数的函数
// 打印 两个 整数 的 和
void PrintSum(int num1 , int num2)
{
printf("%d\n", num1 + num2);
}
// 1、编写函数int sumValue(int n):计算1到n的和
int sumValue(int n){
// 保存和
int sum = 0;
// 循环求和
for (int i = 1; i <= n ; i ++) {
sum += i;
}
return sum;
}
// 2、编写函数dayOfYear(year, mouth,day),使得函数返回由这三个参数确定的那一天是一年中的第几天。
int dayOfYear(int year, int month, int day){
// 声明一个变量 保存每月的天数相加的和
int sum = day;
int array[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
array[1] = 29;
for (int i = 0; i < month - 1; i++) {
sum += array[i];
}
}else{
array[1] = 28;
for (int i = 0; i < month - 1; i++) {
sum += array[i];
}
}
return sum;
}
// 3、编写函数,返回三个整数的中间数。
// 三个数的和 - 最大值 - 最小值 = 中间值
int ComparaValue(int a, int b, int c ){
int max = 0, min = 0, sum = 0;
sum = a + b + c;
max = a > b ? a : b;
max = max > c ? max : c;
min = a > b ? b : a;
min = min > c ? c : min;
return sum - max - min;
}
// 4、编写函数,返回正整数n中的数字的个数。
int NumberValue(int n)
{
// 声明一个变量 计算位数 最少1位数
int count = 1;
while( n / 10 != 0){
n = n / 10;
count ++;
}
return count;
}
// 函数的声明
void ppp();
/*
完整的函数分为3个部分
1.函数声明
2.函数实现
3.函数调用(一般是主函数(main)中去调用)
*/
int main(int argc, const char * argv[]) {
// 函数的定义 : 具有特殊功能的代码段
/*
函数的返回值类型 函数名(参数列表){
函数体(函数中的语句)
return 返回值
}
返回值的类型可以是所有基本数据类型 例如 int float等...也可以没有返回值
没有返回值 用 void
没有返回值 不用return
*/
// 调用函数
// 函数的名字(参数列表);
myPrintf();
// 有返回的函数 需要定义一个变量去接收TA
int number = returnValue();
printf("%d\n", number);
// 调用有返回值有参数的函数
int sum = sumNumber(21 , 32);
printf("%d\n", sum);
PrintSum(22, 33);
int d = dayOfYear(2016, 2, 8);
printf("是这一年的第 %d 天\n", d);
int num = ComparaValue(6, 10, 3);
printf("中间数是 %d\n", num);
int count = NumberValue(1234568);
printf("数字的个数为: %d", count);
printf("\n");
// 调用Function.h当中声明的函数
sumSum(2, 6);
//冒泡排序调用
// 调用时 传入数组名字 传入的是数组的元素的首地址
int array[] = {2, 7, 3, 9, 6};
sortArray(array, 5);
return 0;
}