文章目录
编程练习:解决五个有趣的问题
在编程的世界里,解决问题是一种乐趣,也是提升技能的有效方式。今天,我将带你一起解决五个有趣的编程问题,这些问题覆盖了不同的编程概念和技巧。
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;
}
这些练习不仅能够锻炼你的编程技能,还能帮助你理解算法和数据结构的基本概念。希望你喜欢这些挑战,并从中学到新的知识!如果你有任何问题或需要帮助,随时在评论区告诉我,我会尽力帮助你。祝你编程愉快!🚀💻