C实训(四)

练习:

新建一个Suibian类,以下函数的部分都是写到这个类中的:

1.用函数实现 : 随机产生count个[n , m]的正整数,输出这些数以及他们中的最大数

    int max1(int n, int m, int count){
    int arr[count];
    int max = n - 1;
    for (int i = 0; i < count; i++) {
        arr[i] = arc4random() % (m - n + 1) + n;
        printf("这些数为:%d\n",arr[i]);
        if (max < arr[i]) {
            max = arr[i];
        }
        printf("最大数为:%d\n",max);
    }
    //printf("最大数为:%d\n",max);
    return max;
}
  1. 用函数实现 : 编程将所有“水仙花数”打印出来,并打印其总个数。 (“水仙花数”是一个各个位的立方之和等于该整数的三位数)
void flower() {
    int count = 0;
    for (int i = 100; i <= 999; i++) {
        int x = i / 100;//百位
        int y = i / 10 % 10;//十位
        int z = i % 10;//各位
        if (x * x * x + y * y * y + z * z * z == i) {
            count++;
            printf("%d\n",i);
        }
    }
    printf("水仙花数:%d\n",count);
}
  1. 用函数实现 : 已知abc+cba = 1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合
void set(){
    for (int a = 1; a < 10; a++) {
        for (int b = 0; b < 10; b++) {
            for (int c = 1; c < 10; c++) {
                if ((a * 100 + b * 10 + c * 1) + (c * 100 + b * 10 + a * 1 == 1333)) {
                    printf("%d,%d,%d\n",a,b,c);
                }
            }
        }
    }

}

4.用函数实现 : 输入一个数,如果大于0,输出“正数”;如果小于0,输出“负数”;如果等于0,输出“0”

void shu(){
    int a = 0;
    printf("请输入一个数:");
    scanf("%d",&a);
    if (a > 0) {
        printf("正数\n");
    } else if (a < 0) {
        printf("负数\n");
    } else
        printf("0\n");
}

5.参考strlen()函数编写一个myStrlen()函数,用于获取字符串的长度

int myStrlen(char array[]){
    int count = 0;
    while (array[count] != '\0') {
        count++;
    }
    return count;

}
  1. 用函数实现 : 输入一个整数,判断奇偶,并返回判断结果(BOOL),奇数YES,偶数NO
BOOL panDuan(){
    int a = 0;
    if (a % 2 != 0) {
        return YES;
    }
    return  NO;
}
在主函数中进行实现:
  • 先导入头文件:#import "Suibian.h"

  • 然后进行赋初值、函数调用

    hello();
    repeatPrint(12);
    int x = 4;
    repeatPrint(x);
    int y = peopleCount();
    printf("%d\n",peopleCount());
    printf("%d\n",y);
    int c = max(1,4);
    printf("%d\n",c);
    int q = 0;
    printf("请输入求和的数:");
    scanf("%d",&q);
    int c = sum(q);
    printf("和为:%d\n",c);
   printf("%d\n",mul(2, 3));
   printf("%d\n",chu(5, 1));
   flower();
int count = myStrlen("sgdrgre");
    printf("%d\n",count);
    
    BOOL v = panDuan(10);
    printf("%d",v);
  • 注意每个写在main()函数中的语句都要写在return 0;之前,之前写的几篇中类似,另外定义的函数要写在main()函数{}之外。

  • 下面的练习是写在main.h中的函数,前边的几个是新建类进行函数的添加。

1.几种函数的类型

void hello() {
    printf("hello hi!");
}
void repeatPrint(int count){
    for (int i = 0; i < count; i++) {
        printf("hello\n");
    }
}
int  peopleCount(){
    return 4;
}
int max(int a, int b){
    
    if (a > b) {
        return a;
    }
    return b;
}

2.编写函数,计算1-n的和,并将计算结果通过值返回。n的值由键盘输入

int sum(int n){
    int a = 0;
    for (int i = 1; i <= n; i++) {
        a += i;
    }
    return a;
}

3.三个数中的大小比较

int middleOfThree(int a, int b, int c){
    int max1 = max(a, b);
    int max2 = max(a, c);
    int max3 = max(b, c);
    int max4 = max(max1, max2);
    int result = max4 < max3 ? max4 : max3;
    return result;
}
  • 中间用到了几个函数间的调用

知识点:

1.函数:

1️⃣是具有特定功能的代码段(一连串语句组合总在一起,实现了某一功能)。
可以省略重复代码的编写。
2️⃣从函数定义分为:
库函数(系统提供好的函数,例如printf)、自定义函数(开发者自己写的函数)
3️⃣函数定义四要素:
返回值类型 :函数的结果值类型,函数不能返回数组。指定返回类型是void类型说明函数没有返回值。
函数名 :函数名命名规范和变量名命名规范一样。
参数列表 : 每个形式参数的前面说明其类型,即使几个参数具有相同的数据类型,也必须对每个形式参数分别进行类型说明。形式参数用逗号进行分隔,就算没有参数函数后面的()也不能省略,可以写成(void)。
函数体 :函数功能的实现。

2.函数的定义类型:

返回值类型  函数名(形式参数列表) {
    语句
    return 返回值;
}


无参数无返回值函数举例
void hello(void) {
    printf("Hello,Lanou"):
}

无参数有返回值函数举例
int peopleCount(void) {
    return 33;
}

有参数无返回值函数举例
void printNumber(int x) {
    printf("number is %d", x);
}

有参数有返回值函数举例
int max(int a, int b) {
    return  a > b ? a : b;
}

3.函数嵌套调用

C语言不允许函数嵌套定义,但是允许函数嵌套调用。
函数嵌套定义 : 在一个函数定义内再去定义一个函数;
函数嵌套调用 : 在一个函数内去调用另一个函数。

函数嵌套调用举例
void hello(void) {
    printf("Hello,Lanou");
}

你可能感兴趣的:(C实训(四))