当前位置: 首页 > article >正文

C语言 编程练习:解决五个有趣的问题

文章目录

  • 编程练习:解决五个有趣的问题
    • 1. 出租车费用计算器
      • 1. 1 代码code
    • 2. 成绩转换统计
      • 2. 1 代码code
    • 3. 交错序列求和
      • 3. 1 代码code
    • 4. 阶乘序列求和
      • 4. 1 代码code
    • 5. 输出星号图案
      • 5. 1 代码code


编程练习:解决五个有趣的问题

在编程的世界里,解决问题是一种乐趣,也是提升技能的有效方式。今天,我将带你一起解决五个有趣的编程问题,这些问题覆盖了不同的编程概念和技巧。

1. 出租车费用计算器

问题描述:
编写一个程序,根据某城市的出租车收费标准计算车费。收费标准如下:

  • 起步里程为3公里,起步费10元;
  • 超起步里程后10公里内,每公里2元;
  • 超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
  • 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。

输入输出示例:

  • 输入:2.6 2(行驶里程和等待时间)
  • 输出:10(车费)

1. 1 代码code

//
// Created by d on 2024/10/11.
//
#include <stdio.h>

int main() {
    double juli, stop_time;
    double cost = 10.0; // 起步价
    scanf("%lf %lf", &juli, &stop_time);
    // 计算超过起步里程的费用
    if (juli > 3) {
        cost += 2.0 * (juli - 3);
        if (juli > 13) {
            cost += 3.0 * (juli - 13);
        }
    }
    cost += (int) (stop_time / 5) * 2;
    // 四舍五入到整数
    printf("%d\n", (int) (cost + 0.5));

    return 0;
}

2. 成绩转换统计

问题描述:
编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。转换规则如下:

  • 大于等于90分为A;
  • 小于90且大于等于80为B;
  • 小于80且大于等于70为C;
  • 小于70且大于等于60为D;
  • 小于60为E。

输入输出示例:

  • 输入:7(学生人数)
    77 54 92 73 60 65 69(学生成绩)
  • 输出:1 0 2 3 1(各等级人数)

2. 1 代码code

//
// Created by d on 2024/10/11.
//
#include <stdio.h>

int main() {
    double juli, stop_time;
    double cost = 10.0; // 起步价
    scanf("%lf %lf", &juli, &stop_time);
    // 计算超过起步里程的费用
    if (juli > 3) {
        cost += 2.0 * (juli - 3);
        if (juli > 13) {
            cost += 3.0 * (juli - 13);
        }
    }
    cost += (int) (stop_time / 5) * 2;
    // 四舍五入到整数
    printf("%d\n", (int) (cost + 0.5));

    return 0;
}

3. 交错序列求和

问题描述:
编写程序计算交错序列 1 - 2/3 + 3/5 - 4/7 + 5/9 - 6/11 +... 的前N项之和。

输入输出示例:

  • 输入:5(项数)
  • 输出:0.917(序列和,保留三位小数)

3. 1 代码code

//
// Created by d on 2024/10/11.
//

#include <stdio.h>
int main() {
    int n; // 项
    double sum = 0.0; // 和
    double term; // 每一项
    scanf("%d", &n); // 读入项数
    for (int i = 1; i <= n; i++) {
        term = (double)i / (2 * i - 1);
        if (i % 2 == 0) { // 如果是偶数项,则为负
            term = -term;
        }
        sum += term;
    }

    printf("%.3f\n", sum);

    return 0;
}

4. 阶乘序列求和

问题描述:
编写程序计算序列 1!+2!+3!+⋯ 的前N项之和。

输入输出示例:

  • 输入:5(项数)
  • 输出:153(阶乘和)

4. 1 代码code

//
// Created by d on 2024/10/11.
//

#include <stdio.h>

int main() {
    int n,sum = 0, cheng = 1;

    scanf_s("%d", &n);

    for (int i = 1; i <= n; i++) {
        cheng *= i;
        sum += cheng;
    }

    printf("%lld\n", sum);

    return 0;
}

5. 输出星号图案

问题描述:
编写程序输出如下星号图案:

      *
******
 *******
*******
 *******
      *

输入输出示例:

  • 无需输入
  • 输出:如上星号图案

5. 1 代码code

#include <stdio.h>

int main() {
    int rows = 4;
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < rows - i - 1; j++) {
            printf(" ");
        }
        for (int j = 0; j < 2 * i + 1; j++) {
            printf("*");
        }
        printf("\n");
    }
    for (int i = 0; i < rows - 2; i++) {
        for (int j = 0; j < rows - 1; j++) {
            printf(" ");
        }
        for (int j = 0; j < 2 * (rows - i - 2) + 1; j++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

这些练习不仅能够锻炼你的编程技能,还能帮助你理解算法和数据结构的基本概念。希望你喜欢这些挑战,并从中学到新的知识!如果你有任何问题或需要帮助,随时在评论区告诉我,我会尽力帮助你。祝你编程愉快!🚀💻


http://www.kler.cn/a/350438.html

相关文章:

  • 【Leetcode 每日一题】2239. 找到最接近 0 的数字
  • 哈希(hashing)、哈希函数(Hash Function)、哈希表(Hash Table)、哈希冲突(Hash Collision)
  • PortSwigger靶场练习---第二关-查找和利用未使用的 API 端点
  • 云上贵州多彩宝荣获仓颉社区先锋应用奖 | 助力数字政务新突破
  • 嵌入式硬件篇---PID控制
  • K8s学习
  • Lumerical学习——分析工具(Analysis tools)
  • 0047__【python打包分发工具】setuptools详解
  • Gin框架操作指南10:服务器与高级功能
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——6.vector(无习题)
  • React native之全局变量存储AsyncStorage
  • linux 环境运行 jenkins.war包,有可能会出现字体问题,jdk版本:11 jenkins 版本:2.420
  • 数据结构常考基础代码题-顺序表有序插入
  • JAVA基础(6)
  • 【开源风云】从若依系列脚手架汲取编程之道(五)
  • 单片机死机后在不破坏现场的情况下连接调试器进入调试模式
  • Java筑基之路:运算符深入(下)
  • screenpipe – 搭建个性化AI助手的软件,捕捉屏幕和音频录音
  • 常见的Webshell查杀工具-应急响应实战笔记
  • 搜维尔科技:感受、握持、推动、连接和挤压虚拟物体,SenseGlove触觉反馈手套拥有先进的触觉技术、一流的可用性和功能
  • Jenkins实践(三):分包编译部署到Maven私仓
  • 如何选择安全的谷歌浏览器插件
  • Djang学习- URL反转
  • 浙大数据结构全题解汇总(C++实现)
  • 【Flutter】基础入门:开发环境搭建
  • 企业级私有化即时通讯软件:高效沟通与安全保障的优选