17.递归转换:用递归的方法将一个整数转换为字符串。例如:输入 123456,输
出“123456”。
include <stdio.h>
void tranvers(int n) {
if (n / 10 != 0)
tranvers(n / 10);
printf("%c", n % 10 + '0');
}
void main() {
int n;
printf("Please enter a number:");
scanf("%d", &n);
printf("The string is ");
if (n < 0) {
printf("-");
n = -n;
}
tranvers(n);
}
18.火车时间:假设出发和到达在同一天内,根据火车的出发时间和到达时间,
编写程序计算整个旅途所用的时间。输入格式:在一行中输入两个 4 位正整数,
分别表示火车的出发时间和到达时间,每个时间的格式为 2 位小时数(00-23)
和 2 位分钟数(00-59)。输出格式:“hh:mm”,其中 hh 为 2 位小时数、mm 为 2
位分钟数。
include <stdio.h>
void main() {
int ks, js, xs, fz;
scanf("%d%d", &ks, &js);
xs = js / 100 - ks / 100;
fz = js % 100 - ks % 100;
if (fz < 0) {
xs = xs - 1;
fz = 60 + fz;
}
printf("%02d:%02d", xs, fz);
}
19.简单计算器:编写一个简单计算器的程序,可根据输入的运算符,对 2 个整
数进行加、减、乘、除或求余运算,且保证除法和求余的分母非零。当运算符为
+、-、*、/、%时,输出相应的运算结果。若输入是非法符号则输出 ERROR。
include <stdio.h>
void main() {
int a, b;
char c;
scanf("%d %c%d", &a, &c, &b);
switch (c) {
case '+': printf("%d\n", a + b); break;
case '-': printf("%d\n", a - b); break;
case '': printf("%d\n", a b); break;
case '/':
if (b != 0) {
printf("%d\n", a / b);
break;
}
case '%':
if (b != 0) {
printf("%d\n", a % b);
break;
}
default :
printf("ERROR\n");
break;
}
}
20.机动车处理:按照规定,在高速公路上行驶的机动车,达到或超出本车道限
速的 10%,则初 200 元罚款;达到或超出本车道限速的 50%,就要吊销驾驶证。
编写程序根据车速和限速自定判别对该机动车的处理。输入两个整数,分别对应
车速和限速。输出格式:若属于正常驾驶,则输出“OK”;若属于罚款,则输出
“Exceed x%. Ticket 200”;若应该吊销驾驶证,则输出“Exceed x%. License
Revoked”。其中,x 是超速的百分比,精确到整数。
include <stdio.h>
void main() {
int cs, xs, n, m;
scanf("%d%d", &cs, &xs);
n = xs * (1 + 0.1);
m = xs * (1 + 0.5);
if (cs < n) {
printf("OK\n");
} else if (cs < m) {
printf("Exceed %.0f%%. Ticket 200\n",
1.0 (cs - xs) / xs 100);
} else {
printf("Exceed %.0f%%. License Revoked\n",
1.0 (cs - xs) / xs 100);
}
}