题目内容:无线电台的 RS 制信号报告是由三两个部分组成的:
1)R(Readability) 信号可辨度即清晰度.
2)S(Strength) 信号强度即大小. 其中 R 位于报告第一位,共分 5 级,用 1—5 数字表示.
1)---Unreadable
2)---Barely readable, occasional words distinguishable
3)---Readable with considerable difficulty
4)---Readable with practically no difficulty
5)---Perfectly readable
报告第二位是 S,共分九个级别,用 1—9 中的一位数字表示
1)---Faint signals, barely perceptible
2)---Very weak signals
3)---Weak signals
4)---Fair signals
5)---Fairly good signals
6)---Good signals
7)---Moderately strong signals
8)---Strong signals
9)---Extremely strong signals
现在,你的程序要读入一个信号报告的数字,然后输出对应的含义。
如读到 59,则输出:Extremely strong signals, perfectly readable. 请以字符串数组的方式来实现这个程序。
输入格式: 一个整数,信号报告。整数的十位部分表示可辨度,个位部分表示强度。
输入的整数范围是[11,59]中的个位不为 0 的数字,这个范围外的数字不可能出现在测试数据中。
输出格式:一句话,表示这个信号报告的意义。按照题目中的文字,先输出表示强度的文字,跟上逗号和空格,然后是表示可辨度的文字,跟上句号。注意可辨度的句子的第一个字母是小写的。注意这里的标点符号都是英文的。
输入样例:33
输出样例:Weak signals, readable with considerable difficulty.
#include <stdio.h>
#include <string.h>
void ReportRS(const char *RS){
char Report[40];
switch (RS[1]) {
case '1':
strcpy(Report,"Faint signals, barely perceptible");
break;
case '2':
strcpy(Report,"Very weak signals");
break;
case '3':
strcpy(Report,"Weak signals");
break;
case '4':
strcpy(Report,"Fair signals");
break;
case '5':
strcpy(Report,"Fairly good signals");
break;
case '6':
strcpy(Report,"Good signals");
break;
case '7':
strcpy(Report,"Moderately strong signals");
break;
case '8':
strcpy(Report,"Strong signals");
break;
case '9':
strcpy(Report,"Extremely strong signals");
break;
default:
printf("输入错误\n");
break;
}
printf("%s",Report);
switch (RS[0]) {
case '1':
strcat(Report,",unreadable.");
break;
case '2':
strcat(Report,",barely readable, occasional words distinguishable.");
break;
case '3':
strcpy(Report,",readable with considerable difficulty.");
break;
case '4':
strcpy(Report,",readable with practically no difficulty.");
break;
case '5':
strcpy(Report,",perfectly readable");
break;
default:
printf("输入错误\n");
break;
}
printf("%s\n",Report);
}
int main(void) {
char RS[2];
printf("input RS:");
scanf("%s",RS);
ReportRS(RS);
return 0;
}