• C语言 每日一题 PTA 11.7 day13


    1.求e的近似值

    自然常数 e 可以用级数 1 + 1 / 1!+ 1 / 2!+ ⋯ + 1 / n!+ ⋯ 来近似计算。
    本题要求对给定的非负整数 n,求该级数的前 n + 1 项和。

    代码实现

    1. #include
    2. void main()
    3. {
    4. int a, i, j; double b = 1; double c = 1;
    5. printf("请输入一个数\n");
    6. scanf("%d", &a);
    7. for (i = 1; i <= a; i++)
    8. {
    9. for (j = i; j > 0; j--)
    10. {
    11. b = b / j;
    12. }
    13. c = c + b;
    14. b = 1;
    15. }
    16. printf("%1.8f\n", c);
    17. }

    嵌套两层for循环,将变量定义为double类型

    运行结果

    2.打印杨辉三角

    本题要求按照规定格式打印前N行杨辉三角。
    输入格式:
    输入在一行中给出N(1≤N≤10)。
    输出格式:
    以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。

    输出格式:          1
            1   1
          1   2   1
        1   3   3   1
      1   4   6   4   1
    1   5  10  10   5   1

    思路

    解题思路:要用二维数组进行存储

    知识点 C语言的格式化输出

    1、 % d就是普通的输出了
    2、 % 10d是将数字按宽度为5,采用右对齐方式输出,若数据位数不到10位,则左边补空格。( % 2d时待打印整数3位数字,字段宽度自动扩大以符合整数长度
    3、 % 05d,和 % 5d差不多,只不过左边补0
    4、 % .5d从执行效果来看,和 % 05d一样
    5、 % -10d与 % 10d的输出结果类似,只是打印的数字位于字段的左侧

    代码实现

    1. #include
    2. int main() {
    3. int N;
    4. scanf("%d", &N);
    5. int matrix[10][10] = { 0 };
    6. // 每一行首和行尾元素均为 1
    7. for (int i = 0; i < N; i++) {
    8. matrix[i][0] = 1;
    9. matrix[i][i] = 1;
    10. }
    11. // 赋值剩下 N-2 行的中间元素
    12. for (int i = 2; i < N; i++) {
    13. for (int j = 1; j < i; j++) {
    14. // 当前元素等于上一行的两肩上元素之和
    15. matrix[i][j] = matrix[i - 1][j - 1] + matrix[i - 1][j];
    16. }
    17. }
    18. // 按题目格式输出
    19. for (int i = 0; i < N; i++) {
    20. // 先输出每一行的空格
    21. for (int j = N - 1 - i; j > 0; j--) {
    22. printf(" ");
    23. }
    24. // 输出每一行的元素
    25. for (int k = 0; k <= i; k++) {
    26. printf("%-4d", matrix[i][k]);
    27. //1、 % d就是普通的输出了
    28. //2、 % 10d是将数字按宽度为5,采用右对齐方式输出,若数据位数不到10位,则左边补空格。( % 2d时待打印整数3位数字,字段宽度自动扩大以符合整数长度
    29. //3、 % 05d,和 % 5d差不多,只不过左边补0
    30. //4、 % .5d从执行效果来看,和 % 05d一样
    31. //5、 % -10d与 % 10d的输出结果类似,只是打印的数字位于字段的左侧
    32. }
    33. printf("\n");
    34. }
    35. return 0;
    36. }

    运行结果

    3.字符串排序

    本题要求编写程序,读入5个字符串,按由小到大的顺序输出。
    输入格式:
    输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。
    输出格式:
    按照以下格式输出排序后的结果:
    After sorted :
    每行一个字符串

    思路

    遇到空格进行判断换行,循环进行字符串比较,定义临时字符串变量进行比较交换,运营

    知识点:字符串函数

    【字符串函数讲解(C语言笔记,建议收藏!!!) - CSDN App】

    链接:http://t.csdnimg.cn/6UKhA

    代码实现

    1. #include
    2. #include
    3. #define a 5
    4. #define b 80
    5. int main(void) {
    6. int n, i, j;
    7. char str[a][b];
    8. for (i = 0; i < a; i++) {
    9. scanf("%s", &str[i]);
    10. }
    11. for (i = 0; i < a; i++) {
    12. for (j = 0; j < a - 1; j++) {
    13. char temp[80];
    14. if (strcmp(str[j], str[j + 1]) > 0) {
    15. strcpy(temp, str[j]);
    16. strcpy(str[j], str[j + 1]);
    17. strcpy(str[j + 1], temp);
    18. }
    19. }
    20. }
    21. printf("After sorted:\n");
    22. for (i = 0; i < a; i++) {
    23. printf("%s\n", str[i]);
    24. }
    25. return 0;
    26. }

    运行结果

  • 相关阅读:
    Android 多点触控
    基础 | 并发编程 - [阻塞队列]
    外加1:异常处理深度解析
    基于标签的协同过滤推荐方法研究
    腾讯云、阿里云、华为云便宜云服务器活动整理汇总
    7-FreeRTOS软件定时器
    前端面试宝典React篇13 如何分析和调优性能瓶颈?
    基于STM32+RFID设计的宿舍检修管理系统
    第6章 Mybatis高级查询(详解篇)
    测试平台项目部署一(手动部署)
  • 原文地址:https://blog.csdn.net/m0_73983707/article/details/134258602