Witam, mam problem w wydawało by się łatwym programie i nie mogę dojść co jest nie tak, mianowicie mam do napisania program, który zamienia podaną liczbę dziesiętną na liczbę binarną, zamiana przebiega w funkcji, 1 i 0 są wpisywane do tablicy charów i ta tablica jest zwracana a mój problem polega na tym, że wyświetlane są krzaki, zamiast tablicy, oto kod:
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
char *dec_na_bin(int x)
{
int i, k;
char *tab;
tab = (char*)malloc(32 * sizeof(char));
for (i = 31; i >= 0; i--)
{
k = x >> i;
if (k & 1)
tab[31-i] = "1";
else
tab[31-i] = "0";
}
return tab;
}
int main()
{
int x, i, k;
char *bin;
printf("Podaj liczbe w systemie dziesietnym: \n");
scanf_s("%d", &x);
printf("\n");
bin = (char*)malloc(32 * sizeof(char));
bin = dec_na_bin(x);
printf("Liczba %d w systemie binarnym to:\n%s", x, bin);
getch();
return 0;
}