gpt4 book ai didi

c - 十进制转二进制 C

转载 作者:行者123 更新时间:2023-11-30 20:15:01 26 4
gpt4 key购买 nike

我必须编写一个 C 程序,使用 0 到 255 之间的数字将十进制转换为二进制。使用 3 个函数并且没有全局变量。当我让它运行时,由于某种原因它只是打印全零。这是我到目前为止所拥有的:

#include <stdio.h>

int getNumber();
int dectoBin(int, int binarray[], int);
void printBin(int binary[], int dec);

int main(){
int M = 7;
int binarray[M];
int dec = getNumber();
printf("The decimal number you entered was: %d", dec);
*binarray = decToBin(dec, binarray, M);
printBin(binarray, dec);
return 0;
}

int getNumber(){
int dec;
printf("Enter any a number between 0 and 255: ");
scanf("%d",&dec);
return 0;
}

int decToBin(int dec, int binarray[], int M){
int i, j;
if(dec>255)
printf("Please enter a number between 0 and 255");
else
for(i=7; i>=0;i--){
j = dec >>i;
if(j & 1){
binarray[i] = 1;
}
else {
binarray[i] = 0;
}
}
return *binarray;
}

void printBin(int binary[], int dec){
int i;
if(dec > 255){
printf("PLese use another number");
main();
}
else
{
for(i =7; i > 0;i--){
printf("%d", binary[i]);
printf("\n");
}
}

}

最佳答案

在你的函数中:

int getNumber(){
int dec;
printf("Enter any a number between 0 and 255: ");
scanf("%d",&dec);
return 0;
}

你返回0,你应该返回dec:

int getNumber(){
int dec;
printf("Enter any a number between 0 and 255: ");
scanf("%d",&dec);
return dec;
}

关于c - 十进制转二进制 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22383532/

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