用C编写程序:提示用户输入一个十进制整数,程序输出这个数的二进制显示。 (程序应当提供输入检测,例如输入了非0~9的字符时给出出错提示,并让用户重新输入)
时间: 2024-04-11 18:27:47 浏览: 11
下面是一个用C语言编写的程序,可以实现提示用户输入一个十进制整数,并输出该数的二进制表示:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int decimal, remainder, binary = 0, base = 1;
char input[10];
printf("请输入一个十进制整数: ");
fgets(input, sizeof(input), stdin);
// 检查输入是否合法
for (int i = 0; input[i] != '\0'; i++) {
if (input[i] < '0' || input[i] > '9') {
printf("输入错误!请输入一个有效的十进制整数。\n");
return 1;
}
}
decimal = atoi(input);
while (decimal > 0) {
remainder = decimal % 2;
binary += remainder * base;
decimal /= 2;
base *= 10;
}
printf("二进制表示为: %d\n", binary);
return 0;
}
```
这个程序首先提示用户输入一个十进制整数,然后使用 `fgets` 函数接收用户的输入并存储到 `input` 数组中。接着,程序会检查用户输入是否合法,即输入是否只包含数字字符。如果输入不合法,程序会打印出错信息并退出。
如果输入合法,程序会使用 `atoi` 函数将字符串转换为整数,并将其存储在 `decimal` 变量中。然后,程序使用循环将该十进制整数转换为二进制表示,同时在每次迭代中更新二进制数 `binary` 和基数 `base`。
最后,程序会输出转换得到的二进制数。
希望对你有所帮助!如果有任何问题,请随时提出。