函数分类、函数声明和定义、函数调用,形参实参、函数嵌套调用

main.m中

#import <Foundation/Foundation.h>

#import "aboutClass.h"

//引入头文件的过程相当于把头文件的内容拷贝到当前文件夹中

//return关键字的作用:在没有返回值得函数里面,return用于把函数的结果返回给主调函数,在没有返回值得函数里面,return用于提前结束函数,return之后的语句就不用执行了

//函数之间都是平级的,不允许在函数里面嵌套函数。

//实参传递给形参是一个值拷贝的过程

//局部变量的作用,只在离它最近的大括号有用,出了括号就没有人认识

//全局变量:从定义的位置开始,往下都可以使用

//1.无返回值无参

int main(int argc, const char * argv[]) {

    printHello();

    fool();

    squreOfCircle(3);

    printNumber(7);//7为实参

    printFromNumberToNumber(10 , 20);

    int result =studentNumber();

    printf("number = %d\n",result);

    maxValue(34,28);

    sumOfValue(sumOfValue(sumOfValue(3)));

    middleValue(3,5,8);

    printf("中间值为:%d\n",middleValue(3,5,8));

    lenghtOfWord();

    dayOfYear(2012,3,25);

    exchange(3,6);

    sum(3);

    operate(2,'+',45);

    int array[] = {1,2,3,4,5,6};

    printArray(array,6);

    int a[5] = {};

    randomArray(a, 5);

    int array1[] = {};

    outOfArray(array1, 20);

    int array2[] = {};

    sortByBubble(array2,5);

    int array3[] = {};

    serachArray(array3, 5);

    char str[] = "nadfn fjaf fafnj fafn da er!";

    spaceCount(str);

    return 0;

}


aboutClass.h中

#import <Foundation/Foundation.h>


void printHello();

void fool();

int studentNumber();

int boyCount();

int girlCount();

void printNumber(int n);

void printFromNumberToNumber(int m , int n);

float squreOfCircle(int r);

int maxValue(int value1,int value2);

int sumOfValue(int n);

int middleValue(int a,int b,int c);

int lenghtOfWord();

int dayOfYear(int year,int month,int days);

void exchange(int x,int y);

//int sumOfSquare();

int squre(int n);

int sum();

float operate(float a,char oper ,float b);

void printArray(int array[] , int n);

void randomArray(int array[] , int n);

void outOfArray(int array[] , int n);

void sortByBubble(int array[],int n);

void serachArray(int array[],int n);

int spaceCount(char str[]);

aboutClass.m中

#import "aboutClass.h"


void printHello()

{

    printf("HELLOWORLD!\n");

}


void fool(){

    printf("李昕龙 is a stupid fellow\n");

}

//2.有参数无返回值


void printNumber(int n)//n为形参

{

    for (int i = 1; i <= n; i++) {

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

    }

}

//3.无参数,有返回值


int studentNumber()

{

    return boyCount() + girlCount();

}

int boyCount()

{

    return 31;

}

int girlCount()

{

    return 6;

}


void printFromNumberToNumber(int m , int n)

{

    for (int i = m; i <= n; i++) {

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

    }

}

//有返回值有参

//commond+shift+k 清楚项目缓存


float squreOfCircle(int r){//r形参

    float squre = 3.14*r*r;

    printf("圆的面积为:%f\n",squre);

    return squre;

}


int maxValue(int value1,int value2)

{

    int  max = value1 > value2 ? value1 : value2;

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

    return  max;

}


int sumOfValue(int n)

{

    int sum = 0;

    for (int i = 1 ; i <= n; i++) {

        sum += i;

    }

    printf("1~%d的和为:%d\n",n,sum);

    return sum;

}

//求三个数的中间值


int middleValue(int a,int b,int c)

{

    int max = (a > b ? a : b) > c ? (a > b ? a : b) : c;

    int min = (a < b ? a : b) < c ? (a < b ? a : b) : c;

    int mid = a + b + c - min - max;

    return mid;

}

//随机生成一个数,求这个数字的长度


int lenghtOfWord()

{

    int n = arc4random() % 10001 + 23;

    printf("这个数字为:%d\n",n);

    int count = 0;

    do{

        count ++;

        n = n / 10;

    }while (n != 0);

    printf("长度为:%d\n",count);

    return count;

}


int dayOfYear(int year,int month,int days){

    int day = 0;

    switch (month) {

        case 12:

            day += 30;

        case 11:

            day += 31;

        case 10:

            day += 30;

        case 9:

            day += 31;

        case 8:

            day += 31;

        case 7:

            day += 30;

        case 6:

            day += 31;

        case 5:

            day += 30;

        case 4:

            day += 31;

        case 3:

            if (year%400 == 0 || (year % 4 == 0 && year % 100 != 0)) {

                day += 29;

            }else{

                day += 28;

            }

        case 2:

            day += 31;

        case 1:

            day += days;

        default:

            

            break;

    }

    printf("%d-%d-%d是这一年的第%d\n",year,month,days,day);

    return day;

}


void exchange(int x,int y){

    printf("原来的x=%d,原来的y=%d\n",x,y);

    int temp = x;

    x = y;

    y = temp;

    printf("x=%d,y=%d\n",x,y);

}

//int sumOfSquare(int n){

//    int sum = 0;

//    for (int i = 1; i <= n; i++) {

//        sum += n*n;

//        if (i == n) {

//            printf("%d^2 = ",i);

//        }else{

//        printf("%d^2+",i);

//        }

//    }

//    printf("%d",sum);

//    return sum;

//}

int squre(int n){

    return n*n;

}

int sum(int n){

    int sum = 0;

    for (int i = 1; i <= n; i++) {

        sum += squre(i);

        if (i == n) {

            printf("%d^2 = ",i);

        }else{

            printf("%d^2+",i);

        }


    }

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

    return sum;

}


float operate(float a,char oper ,float b){

    float c = 0;

    switch (oper) {

        case '+':

            c = a + b;

            break;

        case '-':

            c =  a - b;

            break;

        case '*':

            c = a * b;

            break;

        case '/':

            c = a / b;

            if (b == 0) {

                printf("error!\n");

                return 0;

            }

            break;

        default:

            break;

    }

     printf("%f%c%f = %f\n",a,oper,b,c);

    return c;

}

void printArray(int array[] , int n)

{

    for (int i = 0; i < n; i ++) {

        printf("array[%d] = %d\n",i,array[i]);

    }

    

}

//无返回值有参数 给一个数组的每个元素赋值

void randomArray(int array[] , int n)

{

    for (int i = 0; i < n; i ++) {

        array[i] = arc4random() % 101;

        printf("array[%d] = %d\n", i , array[i]);

    }

    

}

void outOfArray(int array[] , int n){

    for (int i = 0; i < n; i ++) {

        array[i] = arc4random() % 23;

        if (array[i] > 18) {

            array[i] = 0;

        }

        printf("array[%d] = %d\n", i , array[i]);

    }

}

void sortByBubble(int array[],int n){

    for (int i = 0; i < n; i ++) {

        array[i] = arc4random() % 23;

        if (array[i] > 18) {

            array[i] = 0;

        }

        printf("array[%d] = %d\n", i , array[i]);

    }

    for (int i = 0; i < n-1; i++) {

        for (int j = 0; j < n - 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 < n; i++) {

    printf("%d ",array[i]);

    }

}

void serachArray(int array[],int n){

    for (int i = 0; i < n; i ++) {

        array[i] = arc4random() % 23;

        if (array[i] > 18) {

            array[i] = 0;

        }

        printf("array[%d] = %d\n", i , array[i]);

    }

    for (int i = 0; i < n-1; i++) {

        int min = i;

        for (int j = i+1; j < n ; j++) {

            if (array[min] > array[j]) {

                min = j;

            }

        }

        if (min != i) {

            int temp = array[min];

            array[min] = array[i];

            array[i] = temp;

        }

    }

    for (int i= 0; i < n; i++) {

        printf("%d ",array[i]);

    }


}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值