C语言编写一个函数,其参数是一个整数N,返回值也是一个整数(假设是R),规则是整数R写出来(输出出来)是N的二进制形式。例如:参数是15,返回值应是1111。主函数中输入若干组整数,依次输出其二进制形式。
时间: 2024-12-14 13:18:24 浏览: 7
从函数返回-c语言函数库
你可以使用C语言编写一个名为`binary_representation`的函数来实现这个功能。这里是一个简单的例子:
```c
#include <stdio.h>
// 函数定义,接收整数N作为参数并返回其二进制表示的字符串
char* binary_representation(int N) {
static char result[40]; // 预先分配足够大的数组存储结果
int i = 0;
// 使用循环和除法取余法计算二进制位
while (N > 0) {
result[i++] = '0' + (N % 2);
N /= 2; // 整数右移一位
}
// 如果最开始的数字是个0,则在前面补上一个'0'
if (result[0] == '0')
result[0] = '1';
// 倒序字符串,因为计算是从最低位开始的
for (int j = 0; j < i / 2; j++) {
char temp = result[j];
result[j] = result[i - j - 1];
result[i - j - 1] = temp;
}
return result;
}
int main() {
int input;
printf("请输入一组整数(按q结束):\n");
while (scanf("%d", &input) == 1 && input != 'q') {
char* binary = binary_representation(input);
printf("%d 的二进制形式是:%s\n", input, binary);
free(binary); // 释放内存
}
return 0;
}
```
在这个程序中,我们首先读取用户输入的整数,然后调用`binary_representation`函数将其转换为二进制字符串。注意,最后在`main`函数中需要手动释放`result`数组以避免内存泄漏。
阅读全文