我必須編寫2個將dec轉換爲bin的程序。我已經完成但1號之一,當我嘗試運行這個它打印出隨機數的數組不知道爲什麼,這裏是我有:十進制到二進制C除以2
#include <stdio.h>
int getNumber();
int dectoBin(int, int binarray[], int);
void printBin(int binary[], int dec);
int main()
{
int M = 8;
int binarray[M];
int dec = getNumber();
printf("The decimal number you entered was: %d", dec);
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 dec;
}
int decToBin(int dec, int binarray[], int M)
{
int i, j;
for(i=8; i>=0;i--)
{
while(dec != 0)
{
binarray[i]= dec % 2;
dec = dec/2; binarray[i] = dec;
}
}
return *binarray;
}
void printBin(int binary[], int dec)
{
int i;
if(dec > 255)
{
printf("please use another number");
main();
}
else
{
for(i =8; i >= 0;i--)
{
printf("%d", binary[i]);
printf("\n");
}
}
}
'decToBin'看起來很破,我 - 不應該有兩個循環。你的'for'循環遍歷錯誤的範圍(8..0 - 應該是7..0)。否則代碼看起來大部分是OK的。 –
縮進你的代碼。 –
檢查'scanf'的返回值。用你當前的代碼,如果有分析錯誤,則從'getNumber()'返回未初始化的垃圾值。 – hyde