• 第一次闭环输出前面几节的demo


    思考题(1):位数输出

    计算一个输入整数的十进制表示的位数?
    条件 1:允许有多余输出的情况下,怎么实现?
    条件 2:只允许输出数字位数的时候,又该怎么实现?
    请单纯考虑使用 printf 一族函数方法实现。

    #include <stdio.h>
    
    int main() {
        int n;
        scanf("%d", &n);
        printf(" has %d digits
    ", printf("%d", n)); // 有多余输出
        char output[50];
        int ret = sprintf(output, "%d", n);
        printf("%d
    ", ret); // 无多余输出
        return 0;
    }
    

    思考题(2):读入一行字符串

    请大家自行实现一个读入一行字符串,并且输出相关内容的程序,思考如下:
    条件 1:如果字符串中没有空格,怎么实现?
    条件 2:如果字符串中有空格,又该怎么实现?
    请单纯考虑用 scanf 一族函数方法实现。

    #include <stdio.h>
    char str[100];
    int main() {
        scanf("%[^
    ]s", str);
        printf("%s
    ", str);
        return 0;
    }
    

    思考题:打印乘法表

    使用循环和条件判断,打印一个格式优美的 66 乘法表
    要求 1:输出内容及样式参照下面给出的样例
    要求 2:每两列之间用 字符进行分隔,行尾无多余 字符

    #include <stdio.h>
    int main() {
        for (int i = 1; i <= 6; i++) {
            for (int j = 1; j <= i; j++) {
                j == 1 || printf("	");          
                printf("%d * %d = %d", j, i, i * j);
            }
            printf("
    ");
        }
        return 0;
    }
    

    思考题:设计迷你随机函数

    设计一个循环过程,循环 100 次,以不太明显的规律输出 1~100 中的每个数字。
    要求 1:规律尽量不明显。
    要求 2:只能使用循环和最基本的运算,不允许超前使用数组。

    #include <stdio.h>
    int main() {
        int n = 5;
        for (int i = 1; i <= 100; i++) {
            printf("%2d ", n);
            if (i % 10 == 0) printf("
    ");
            n = (n * 3) % 101;
        }
        return 0;
    }
    

    思考题:去掉倍数

    设计一个去掉倍数的程序,要求如下:

    首先读入两个数字 n 和 m,n 的大小不会超过 10,m 的大小都不会超过 10000;

    接下来读入 n 个各不相同的正整数,输出 1 到 m 中,有哪些数字无法被这 n 个正整数中任意的一个整除。

    #include <stdio.h>
    int check[1005] = {0};
    int main() {
        int n, m, num;
        scanf("%d%d", &n, &m);
        for (int i = 0; i < n; i++) {
            scanf("%d", &num);
            for (int j = num; j <= m; j += num) {
                check[j] = 1;
            }
        }
        for (int i = 1; i <= m; i++) {
            if (check[i] == 1) continue;
            printf("%d ", i);
        }
        return 0;
    }
    

    思考题(1):体验利器

    刚刚在上面,介绍了 sprintf 和 sscanf 两个字符串处理的利器工具,那么就请使用 sprintf 函数实现 strlen、strcpy、strcat 函数的功能,注意哦,只允许使用 sprintf 函数,模仿如上三个函数的功能。

    #include <stdio.h>
    char str1[1000], str2[1000];
    int main() {
        scanf("%s%s", str1, str2);
        printf("str1 = %s	str2 = %s
    ", str1, str2);
        sprintf(str1, "%s", str1);   // strlen(str1)
        sprintf(str1, "%s", str2);   // strcpy(str1, str2)
        printf("str1 = %s	str2 = %s
    ", str1, str2);
        sprintf(str1, "%s%s", str1, str2);   // strcat(str1, str2)
        printf("str1 = %s	str2 = %s
    ", str1, str2);
        return 0;
    }
    

    思考题(2):优美的遍历技巧

    介绍完了字符串的相关知识以后,请思考如下问题,如何在不计算字符串长度的情况下,遍历字符串的每一位呢?
    程序设计要求是,读入一个字符串,然后在不计算字符串长度的情况下,输出字符串中的每一个字符,每个字符占一行。其中所谓计算字符串长度的方法,包括但不限于 strlen,sprintf,先行 for 循环遍历统计等。

    #include <stdio.h>
    int main() {
        char str[1000];
        scanf("%s", str);
        for (int i = 0; str[i]; i++) {
            printf("%c
    ", str[i]);
        }
        return 0;
    }
    
  • 相关阅读:
    request库下载
    tomcat启动正常,但是访问项目时,404. Eclipse没有正确部署工程项目
    Tomcat端口被占用
    administrator账户权限如何开启和关闭
    团队作业2 需求分析与原型设计
    矩阵快速幂
    散列函数的应用及其安全性
    递归实例
    芯片测试
    优先队列小知识
  • 原文地址:https://www.cnblogs.com/liugangjiayou/p/12595628.html
Copyright © 2020-2023  润新知