C语言5(函数)

来源:互联网 发布:python绝技百度云 编辑:程序博客网 时间:2024/06/08 13:41

                                                  C语言5(函数)

#pragma mark - 定义函数

//调用函数

//无返回值,无参数

// greeting();
// greeting();
// greeting();
// greeting();

//无返回值,有一个参数

// sumOfNumber(100);

//有返回值,有一个参数
int a = 0;
printf("input number:");
scanf("%d",&a);

int sum = sumOfVaule(a);

printf("sum = %d\n",sum);

#pragma mark - 实参和形参

//实参:实际参数,传入的那个数
//1.实参的个数必须要和形参的个数相同,类型相同
//2.实参的值进行拷贝,将副本传递给形参

//形参:形式参数
//1.形参可有(多个,逗号进行间隔)可无
//2.保存传入的数据
//3.形参不可以重名

#pragma mark - return

//return作用
//1.可以返回值给调用者
//2.退出函数
//3.可以提前退出:return;

//练习:求 两个数中的最大数
// int a = 10;
// int b = 20;
//
// int max = maxOfValue(a, b);
// printf("max = %d\n",max);
//
////求两个数的平方和

sumOfSquare(20, 30);


#pragma mark - 函数注意点

/*
1.不允许函数名称一样
2.函数不可以嵌套定义
3.函数需要先声明和定义才可以使用
4.函数的声明可以写在main函数里面(只要保证调用前有就ok)
5.只有函数的声明没有函数的定义,无法正常运行
*/


#pragma mark - 函数的嵌套
// long sum = 0;
// for (int i = 2; i <= 3; i ++) {
//// int squ = square(i);
//// long fac = factor(squ);
// long fac = factor(square(i));
// sum += fac;
//
// }
//
// printf("sum = %ld\n",sum);
//

#pragma mark - 数组作为函数的参数

// int array[3] = {1,4,3};
// exchange(array[0], array[1]);
//// printf("main: a = %d,b = %d\n",array[0],array[1]);
//
// exchangeOfArray(array);
// printf("main: arr = %d,arr = %d\n",array[0],array[1]);
//

// return 0;


主函数main的外部方法

void exchange(int a, int b){
    
    int temp = a;
    a = b;
    b = temp;
    printf("自定义:a = %d,b = %d\n",a,b);
}

void exchangeOfArray(int array[]){
    
    int temp = array[0];
    array[0] = array[1];
    array[1] = temp;
    printf("自定义:arr = %d,arr = %d\n",array[0],array[1]);

    
}

//返回值  函数名 (参数1,参数2.....){函数体}


创建C File 把函数写入创建文件中 主函数在调用

.h文件中(声明函数)

//声明函数
void greeting();
void  sumOfNumber (int a);
int sumOfVaule(int number);
int maxOfValue(int a, int b);
void sumOfSquare(int a, int b);
int square(int a);
long factor(int number);


.m文件中(写方法)

//函数定义,函数实现
void greeting(){
    
    printf("早上好!");
    
}


void  sumOfNumber (int a){
    
    int sum = 0;
    for (int i = 1; i <= a; i ++) {
        sum += i;
    }
    
    printf("sum = %d\n",sum);
}

int sumOfVaule(int number){
    
    
    
    int sum = 0;
    for (int i = 1; i <= number; i ++) {
        sum += i;
    }
    
    return sum;
    
    
    
}


int maxOfValue(int a, int b){
    
    int max = 0;
    max = a > b ? a : b;
    return max;
    
}

void sumOfSquare(int a, int b){
    
    int sum = a * a + b * b;
    
    printf("sum = %d\n",sum);
    
    
}

//平方
int square(int a){
    
    return a * a;
}


//阶乘
long factor(int number){
    
    long result = 1;
    if (number == 1 || number == 0) {
        return 1;
    }else{
    
//        for (int i = 1; i <= number ; i ++) {
//            result *= i;
//        }
        
        result =  number * factor(number - 1);
//
//        5 * factor(4);
//        
//        5 * 4 * factor(4 - 1);
//        
//        5 * 4 * 3 * factor(3 - 1);
//        
//        5 * 4 * 3 * 2 * factor(2 - 1);
//        
//        5 * 4 * 3 * 2 * 1;
        
        return result;
        
    }
    

}

0 0
原创粉丝点击