用C语言编写上述程序
时间: 2024-10-21 09:03:57 浏览: 11
在C语言中,由于没有内置的`bin()`函数,你需要手动处理二进制转换。下面是一个简单的C程序版本,它使用位运算符实现:
```c
#include <stdio.h>
void dec_to_bin(int num) {
if (num == 0) {
printf("该数字的二进制表示为:0\n");
return;
}
// 用while循环遍历每一位,从右向左
while (num > 0) {
int remainder = num % 2; // 取余数得到当前位
printf("%d", remainder);
num = num / 2; // 将原数除以2,移除最低位
}
printf("\n");
}
int main() {
char input[50];
printf("请输入一个十进制数字(输入0结束程序):");
while (scanf("%s", input) != EOF && strcmp(input, "0") != 0) { // 检查是否输入'0'或达到文件结束
int num;
if (sscanf(input, "%d", &num) == 1) { // 如果能成功解析成整数
dec_to_bin(num);
} else {
printf("输入无效,请输入整数。\n");
scanf("%*s"); // 清空输入缓冲区
}
}
return 0;
}
```
这个程序首先定义了一个`dec_to_bin`函数,用于将十进制转换为二进制。`main`函数中,通过循环读取用户输入,并调用`dec_to_bin`,直到用户输入'0'。
阅读全文