小韦老师@神犇营-my0072-小码猿寄快递
题目:
描述
小码猿要去寄快递,快递公司收费的标准如下:
5 千克(包括 5 千克)以内的价格为每千克 10.2 元,超过 5 千克的价格为每千克 7.5 元。如果加急,要加 10 元钱。如果是贵重物品,要加 20 元钱。
请你写一个程序,帮小码猿计算所要付的快递费。
输入
输入为 3 行,第一行输入一个正数,为快递的重量(单位是千克,小于等于 100 千克)。
第二行的输入表示快递是否加急,若输入 y,则说明快递加急;若输入 n,则说明快递不加急。
第三行的输入表示寄的物品是否为贵重物品,若输入 Y,则说明寄的是贵重物品;若输入 N,则说明寄的不是贵重物品。
输出
输出仅一行,为所需支付的快递费。输出保留 3 位小数。
输入样例1
13
y
Y
输出样例1
127.500
题解:
思路
整体思路:
根据重量算出相应的费用;然后根据是否加急,决定要不要再加 10 块钱;
再根据是否为贵重物品,决定要不要再加 20 块钱。
具体步骤:
1.先定义两个 double 型的变量,分别用来存储重量和费用:
double weight, cost = 0;
2.再定义两个 char 型的变量,用来存储输入的字符(y/n, Y/N):
char j; // 加急
char g; // 贵重
3.输入重量,是否加急,是否为贵重物品:
cin >> weight >> j >> g;
4.如果重量小于等于 5,则费用 = 重量 * 10.2;否则费用 = 重量 * 7.5:
if (weight <= 5) {
cost = weight * 10.2;
} else {
cost = weight * 7.5;
}
5.如果是加急(也就是说,第二个输进来的是 y),则费用加 10:
if (j == 'y') {
cost += 10;
}
6.如果是贵重物品(也就是说,第三个输进来的是 Y),则费用加 20:
if (g == 'Y') {
cost += 20;
}
7.把费用保留 3 位小数输出:
printf("%.3f", cost);
完整代码
#include <bits/stdc++.h>
using namespace std;
int main() {
double weight, cost = 0;
char j; // 加急
char g; // 贵重
cin >> weight >> j >> g;
if (weight <= 5) {
cost = weight * 10.2;
} else {
cost = weight * 7.5;
}
if (j == 'y') {
cost += 10;
}
if (g == 'Y') {
cost += 20;
}
printf("%.3f", cost);
return 0;
}