Arkadaşlar bilgisayar mühendisi 1. sınıfım hocamız ödev verdi soru onluk tabandaki sayiyi 2 lik tabana cevirme bu soruyu özyinelemeyle yapmamızı istedi ben birşeyler yaptım ama sorunum var kod şu:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
ikilik(int a)
{
int bolum,kalan,toplam;
static sayac=-1;
toplam=0;
sayac=sayac+1;
bolum=a/2;
kalan=a%2;
toplam=kalan*(pow(10,sayac));
printf("%d\n",toplam);
if (bolum<2)
return kalan*pow(10,sayac)+pow(10,1+sayac);
return kalan*pow(10,sayac)+ikilik(bolum);
}
int main(int argc, char *argv[])
{ int sayi;
printf("sayiyi giriniz");
scanf("%d",&sayi);
printf("sayinin 2 lik tabaninda yaziilisi %d",ikilik(sayi));
system("PAUSE");
return 0;
}
toplamı yazdırmamın sebebi kontrol amacli girilen sayiya 41 yazdıgımda dogru buluyor ama 31 de 1 eksik buluyor kontrol yaptım sorunun
toplam=kalan*(pow(10,sayac)) satırında sayac=3 ve k =1 oldugunda toplamı 99 buluyor yardımlarınızı bekliorm.