c编写程序:提示用户输入一个十进制整数,程序输出这个数的二进制显示。(程序应当提供输入检测,例如输入了非0~9的字符时给出出错提示,并让用户重新输入)
时间: 2024-04-08 17:32:58 浏览: 37
输入一个十进制整数,然后显示对应的二进制值.java
当然,我可以帮你编写这个程序。以下是一个示例的C语言程序,实现了用户输入十进制整数并输出二进制表示的功能。
```c
#include <stdio.h>
#include <stdbool.h>
bool is_valid_input(const char* input) {
while (*input) {
if (*input < '0' || *input > '9') {
return false;
}
input++;
}
return true;
}
void decimal_to_binary(int decimal) {
if (decimal > 0) {
decimal_to_binary(decimal / 2);
printf("%d", decimal % 2);
}
}
int main() {
char input[20];
int decimal;
while (true) {
printf("请输入一个十进制整数:");
fgets(input, sizeof(input), stdin);
// 去除换行符
if (input[strlen(input) - 1] == '\n') {
input[strlen(input) - 1] = '\0';
}
if (!is_valid_input(input)) {
printf("输入错误,请重新输入!\n");
continue;
}
decimal = atoi(input);
break;
}
printf("二进制表示为:");
decimal_to_binary(decimal);
printf("\n");
return 0;
}
```
这个程序会提示用户输入一个十进制整数,并通过 `fgets` 函数读取用户的输入。然后,它会使用 `is_valid_input` 函数检查用户输入是否合法,如果输入包含非数字字符,则会提示用户重新输入。
一旦用户输入的是一个合法的十进制整数,程序将调用 `decimal_to_binary` 函数来将十进制整数转换为二进制表示。该函数使用递归的方式进行转换,并打印每一位的二进制数。
最后,程序会输出转换后的二进制数。
希望这个程序能够帮到你!如果有任何疑问,请随时提问。
阅读全文