Witam, mam do napisania prosty program, który zamienia podaną przez usera liczbe calkowitą na binarna i z powrotem. Zamiana z calkowitej na binarną działa poprawnie natomiast przy zamianie z binarnej na calkowita caly czas dostaje output w postaci liczby 568. Mam wrazenie ze winny jest temu niepoprawny sposob przekazania argumentu z 1 funkcji do drugiej, nizej wklejam kod:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int konwerterdobin(int calkowita){
static int binarna=0, przechowalnia, mnoznik=1;
while (calkowita!=0){
przechowalnia=calkowita%2;
calkowita=calkowita/2;
binarna=binarna+przechowalnia*mnoznik;
mnoznik=mnoznik*10;
}
return binarna;
}
int konwerterdocalk(int binarna){
int i=0,przechowalnia,calkowita=0;
while (binarna!=0){
przechowalnia=binarna%10;
binarna=binarna/10;
calkowita=calkowita+przechowalnia*pow(2,i);
++i;
}
return calkowita;
}
int main(){
int calkowita, binarna;
printf("Podaj liczbe calkowita wieksza od zera\n");
scanf("%d", &calkowita);
printf("Liczba po konwersji do wersji binarnej wynosi %d\n", konwerterdobin(calkowita));
printf("Liczba po binarna po konwersji na calkowita wynosi %d", konwerterdocalk(&binarna));
return 0;
}
Dzieki za kazda pomoc