C语言编写一个能够根据用户的要求对输入的数据进行多种处理的程序。程序运行后的提示符号是冒号(:)。程序运行后,就显示提示符。用户通过以字母方式表示的命令,向程序发出指示。在程序完成一项工作后,再显示提示符,等待用户的命令。利用命令和对应的操作如下: 命令 操作 说明 Q 结束程序 ? 给出帮助提示信息 H 将用户输入的十进制数转换为十六进制输出 先提示用户输入数据 B 将用户输入的十进制数转换为二进制输出 先提示用户输入数据 N 将用户输入的十进制数转换为九进制输出 先提示用户输入数据 M 将用户输入的正整数反向输出 先提示用户输入数据 列出用户输入的正整数的所有因子 先提示用户输入数据
时间: 2023-05-28 13:06:10 浏览: 85
以下是代码实现:
```c
#include <stdio.h>
void print_help() {
printf("Q:退出程序\n");
printf("?: 显示帮助\n");
printf("H:将十进制数转换为十六进制\n");
printf("B:将十进制数转换为二进制\n");
printf("N:将十进制数转换为九进制\n");
printf("M:将正整数反向输出\n");
printf("F:列出正整数的所有因子\n");
}
void to_hex() {
int num;
printf("请输入一个十进制数:");
scanf("%d", &num);
printf("十进制数 %d 转换为十六进制为 %X\n", num, num);
}
void to_binary() {
int num;
printf("请输入一个十进制数:");
scanf("%d", &num);
printf("十进制数 %d 转换为二进制为 ", num);
for(int i=31; i>=0; i--) {
printf("%d", (num>>i)&1);
}
printf("\n");
}
void to_nine() {
int num, res=0, base=1;
printf("请输入一个十进制数:");
scanf("%d", &num);
while(num) {
res += (num%9) * base;
base *= 10;
num /= 9;
}
printf("十进制数转换为九进制为 %d\n", res);
}
void reverse() {
int num, res=0;
printf("请输入一个正整数:");
scanf("%d", &num);
while(num) {
res = res*10 + num%10;
num /= 10;
}
printf("%d 的反向输出为 %d\n", num, res);
}
void factors() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
printf("%d 的因子为:", num);
for(int i=1; i<=num; i++) {
if(num%i == 0) {
printf("%d ", i);
}
}
printf("\n");
}
int main() {
char cmd;
while(1) {
printf(":");
scanf(" %c", &cmd);
switch(cmd) {
case 'Q': return 0;
case '?': print_help(); break;
case 'H': to_hex(); break;
case 'B': to_binary(); break;
case 'N': to_nine(); break;
case 'M': reverse(); break;
case 'F': factors(); break;
default: printf("无效的命令,请输入 ? 获取帮助\n"); break;
}
}
return 0;
}
```
程序运行后,通过输入命令字母来执行对应的操作。例如,输入 H 命令后,程序会提示用户输入一个十进制数,然后将该数转换为十六进制并输出。输入 Q 命令后,程序会退出。如果用户输入了无效的命令,则会提示用户输入 ? 命令来获取帮助信息。
阅读全文