第六章 数组课后练习 9-12

//
// Created by 86184 on 2024/8/13.
//
//9.十五个数按降序存在一个数组中
//输入一个数,折半查找它是数组中第几个元素,不在数组中返回无此数
#include <stdio.h>

int main() {
    int array[15] = {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
    int low = 0, high = 14, mid = 0, key = 15;
    while (low <= high) {
        mid = (low + high) / 2;
        if (array[mid] == key) {
            printf("该数是数组中的第:%d个数", mid + 1);
            return 0;
        } else if (array[mid] > key) low = mid + 1;
        else high = mid - 1;
    }
    printf("无此数");
    return 0;
}
//
// Created by 86184 on 2024/8/13.
//
//10.有一篇文章,共有三行,每行有80个字符。要求分别统计出其中的
//英文,大写字母,小写字母,数字,空格已经其他字符。

#include <stdio.h>

int main() {
    char s[3][5] = {{"aAB 9"},
                    {"*cc76"},
                    {"?*. B"}};
    int oldCount = 0, minCount = 0, number = 0, key = 0, other = 0;
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 5; ++j) {
            if ('a' <= s[i][j] && s[i][j] <= 'z')
                minCount++;
            else if ('A' <= s[i][j] && s[i][j] <= 'Z')
                oldCount++;
            else if ('0' <= s[i][j] && s[i][j] <= '9')
                number++;
            else if (s[i][j] && s[i][j] == ' ')
                key++;
            else
                other++;
        }
    }
    printf("英文大写字母的个数为:%d\n", oldCount);
    printf("英文小写字母的个数为:%d\n", minCount);
    printf("数字的个数为:%d\n", number);
    printf("空格个数为:%d\n", key);
    printf("其它字符个数为:%d\n", other);

    return 0;
}

//
// Created by 86184 on 2024/8/13.
//
//11.绘制图案
//* * * * *
//  * * * * *
//      * * * * *
//          * * * * *
//              * * * * *
#include <stdio.h>

int main() {
    char array[5][5] = {{'\0'}};
    char key = ' ';
    int k = 0;
    for (int i = 0; i < 5; ++i) {
        for (int j = 0; j < 5; ++j) {
            array[i][j] = '*';
        }
    }
    for (int i = 0; i < 5; ++i) {
        for (int j = 0; j < 5; ++j) {
            printf("%c ", array[i][j]);
        }
        k = i;
        printf("\n", key);
        while (k >= 0) {
            printf("%c", key);
            printf("%c", key);
            k--;
        }
    }


    return 0;
}


//
// Created by 86184 on 2024/8/13.
//
//12.有一行电文,按照下面规律译码
//A-Z a-z
//B-Y b-y
//C-X c-x
// .   .
// .   .
// .   .
//第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母不变.
#include <stdio.h>

int main() {
    char s[10] = {"BACabcBCA?"};
    int i = 0, j = 0, m = 0;
    char k = '0';
    printf("输出密码为:\n");
    fflush(stdout);
    for (int l = 0; l < 10; ++l) {
        printf("%c", s[l]);
    }
    printf("\n");
    while (i < 10) {
        k = s[i];
        if (s[i] >= 'A' && s[i] <= 'Z') {
            j = s[i] - 'A' + 1;
            m = 26 - j + 1;
            k = m + 'A' - 1;
        }
        if (s[i] >= 'a' && s[i] <= 'z') {
            j = s[i] - 'a' + 1;
            m = 26 - j + 1;
            k = m + 'a' - 1;
        }
        s[i] = k;
        i++;
    }
    printf("输出原文为:\n");
    fflush(stdout);
    for (int l = 0; l < 10; ++l) {
        printf("%c", s[l]);
    }

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值