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");
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容