我必须编写一个C程序,它使用0到255之间的数字将十进制转换为二进制。使用3个函数并且不使用全局变量。当我运行它时,出于某种原因打印全部为零。这是我到目前为止有:十进制到二进制C
#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");
}
}
}
打算你的代码。 –
你知道,在声明之外,'* binarray'就等于'binarray [0]',对吧? – Medinoc
在'printBin'内调用'main'是很有效的! –