7-1 出租车计价 分数 20
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
- 起步里程为3公里,起步费10元;
- 超起步里程后10公里内,每公里2元;
- 超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
- 营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
输入格式:
输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。
输出格式:
在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。
输入样例1:
2.6 2
输出样例1:
10
输入样例2:
5.1 4
输出样例2:
14
输入样例3:
12.5 9
输出样例3:
34
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<stdio.h>
int main() {
double input, sum;
int wait = 0;
scanf("%lf %d", &input, &wait);
if (input <= 10)
sum = input <= 3.0 ? 10.0 : (input-3.0) * 2 + 10;
else
sum = 10 + 14 + (input - 10.0) * 3;
sum += wait / 5 * 2;
printf("%.lf", sum);
return 0;
}
7-2 meihb_CH03_四则运算 分数 20
本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围.
输入格式:
输入在一行中依次输入操作数1、运算符、操作数2。操作数的数据类型为整型,且保证除法和求余的分母非零。
输出格式:
当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出error operator!。
输入样例1:
在这里给出一组输入。例如:
-7/2
输出样例1:
在这里给出相应的输出。例如:
-3
输入样例2:
在这里给出一组输入。例如:
3&2
输出样例1:
在这里给出相应的输出。例如:
error operator!
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<stdio.h>
int main() {
char ch;
int a, b;
scanf("%d%c%d", &a, &ch, &b);
switch (ch) {
case'+':
printf("%d", a+b);
break;
case'-':
printf("%d", a-b);
break;
case'*':
printf("%d", a*b);
break;
case'/':
printf("%d", a/b);
break;
case'%':
printf("%d", a%b);
break;
default:
printf("error operator!");
}
return 0;
}
7-3 meihb_CH03_买水果 分数 20
给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。
首先在屏幕上显示以下菜单:
[1] apple
[2] pear
[3] orange
[4] grape
然后,用户可以输入编号1~4和购买的公斤数来买水果。当输入的编号不是1~4,则显示sorry,no this fruit!。
输入格式:
输入在一行中给出用户购买的水果编号和公斤数,中间以空格为分割。
输出格式:
首先在屏幕上显示菜单。然后对应用户的输入(即水果编号和购买总公斤数),在一行中按格式“money = 总价”输出总价,其中总价保留两位小数。
输入样例1:
在这里给出一组输入。例如:
1 2
输出样例1:
在这里给出相应的输出。例如:
[1] apple
[2] pear
[3] orange
[4] grape
money=6.00
输入样例2:
在这里给出一组输入。例如:
5 2
输出样例2:
在这里给出相应的输出。例如:
[1] apple
[2] pear
[3] orange
[4] grape
sorry,no this fruit!
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<stdio.h>
#define APPLE 3.00
#define PEAR 2.50
#define ORANGE 4.10
#define GRAPE 10.20
int main() {
int input, weight;
double cost = 0;
scanf("%d %d", &input, &weight);
printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n");
switch (input) {
case 1:
cost = weight * APPLE;
break;
case 2:
cost = weight * PEAR;
break;
case 3:
cost = weight * ORANGE;
break;
case 4:
cost = weight * GRAPE;
break;
default:
printf("sorry,no this fruit!");
}
if (cost > 0)
printf("money=%.2lf", cost);
return 0;
}
7-4 倒顺数字串 分数 20
输入正整数n,输出它的倒顺数字串。如n=6时,输出
1 2 3 4 5 6 5 4 3 2 1
输入格式:
输入一个正整数n,n的范围是[1,50]。
输出格式:
n的倒顺数字串,每两个数字之间只用一个空格隔开。
输入样例:
6
输出样例:
1 2 3 4 5 6 5 4 3 2 1
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<stdio.h>
int main() {
int n, i;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
if (i == n) {
printf("%d", n);
continue;
}
printf("%d ", i);
}
for (i = n - 1; i >= 1; i--)
printf("% d", i);
return 0;
}
7-5 黑洞数 分数 20
黑洞数也称为陷阱数,又称“Kaprekar问题”,是一类具有奇特转换特性的数。
任何一个各位数字不全相同的三位数,经有限次“重排求差”操作,总会得到495。最后所得的495即为三位黑洞数。所谓“重排求差”操作即组成该数的数字重排后的最大数减去重排后的最小数。(6174为四位黑洞数。)
例如,对三位数207:
- 第1次重排求差得:720 - 27 = 693;
- 第2次重排求差得:963 - 369 = 594;
- 第3次重排求差得:954 - 459 = 495;
以后会停留在495这一黑洞数。如果三位数的3个数字全相同,一次转换后即为0。
任意输入一个三位数,编程给出重排求差的过程。
输入格式:
输入在一行中给出一个三位数。
输出格式:
按照以下格式输出重排求差的过程:
序号: 数字重排后的最大数 - 重排后的最小数 = 差值
序号从1开始,直到495出现在等号右边为止。
输入样例:
123
输出样例:
1: 321 - 123 = 198
2: 981 - 189 = 792
3: 972 - 279 = 693
4: 963 - 369 = 594
5: 954 - 459 = 495
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<stdio.h>
int main() {
int max, min, middle;
int sum1, sum2, n, i;
int a, b, c;
scanf("%d", &n);
for (i = 1;;i++) {
a = n / 100;
b = n / 10 % 10;
c = n % 10;
max = a > b ? a : b;
max = max > c ? max : c;
min = a > b ? b : a;
min = min > c ? c : min;
if (a > b) {
middle = a > c ? c : a;
middle = middle > b ? middle : b;
}
else {
middle = b > c ? c : b;
middle = middle > a ? middle : a;
}
sum1 = max * 100 + middle * 10 + min;
sum2 = min * 100 + middle * 10 + max;
n = sum1 - sum2;
printf("%d: %d - %d = %d\n", i, sum1, sum2, n);
if (n == 495)break;
}
return 0;
}