gpt4 book ai didi

C作业,打印出一个整数的二进制值

转载 作者:太空宇宙 更新时间:2023-11-04 00:22:48 25 4
gpt4 key购买 nike

 #include <stdio.h> 
#include <stdlib.h>

// Print out the binary value of an integer

void binval (int num);
int get_number();

main () {
int num;

num = get_number();
printf("Num = %d\n",num);
binval(num);

}

void binval (int num) {
int val = 0;
int test;

if (!num) {
printf("\n");
return;
}


test = num & 0x0001;
if (test == 1) {
val = 1;
}

num = num / 2;
printf("%d",val);
binval(num);
return;
}

int get_number() {
int value = 0;
char c;
printf("Please input number : ");
while ((c = getchar()) != '\n') {
if ( (c>'9') || (c<'0') ) {
printf("Incorrect character entered as a number - %c\n",c);
exit(-1);
}
else {
value = 10*value + c - '0';
}
}
return(value);
}

现在它只为每个答案编译得到 01。

最佳答案

我认为您需要声明 binval 函数,否则编译器会假定它返回 int。然后当你定义它时,它不符合那个假设。

此外,这一行可能会给您带来麻烦:

if (test = 1) {

这会将 test 赋给值 1,但我认为您是想比较它:

if (test == 1) {

关于C作业,打印出一个整数的二进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3757602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com