小小君的C语言第六课

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):计算1n的和


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;

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值