Cześć, prosiłbym o pomoc z kodem do zamiany systemu dziesiętnego na inne. Mam mały problem z włożeniem warunku zerowego do funkcji i udało mi się go zrobić jedynie poza nią.
Gdy przy takim kodzie uwzględniam w funkcji f
else if(n==0) printf("0");
pojawiają się zera na początku, a nie tylko w przypadku n=0. Domyślam się, że może chodzić o przekazywanie dwóch zmiennych f(n / i, i) przy rekurencji niestety nie wiem w jaki inny sposób to wykonać.
#include <stdio.h>
void f(int n, int system)
{
if (n > 0 )
{
f(n / system, system);
if(n%system==10)
{
printf("A");
}
if(n%system==11)
{
printf("B");
}
if(n%system==12)
{
printf("C");
}
if(n%system==13)
{
printf("D");
}
if(n%system==14)
{
printf("E");
}
if(n%system==15)
{
printf("F");
}
if(n%system<=9)
{
printf("%d",n%system);
}
}
}
int main()
{
int n; //liczba do zamienienia na inny system
printf("N: ");
scanf("%d",&n);
if(n==0)
{
printf("Binarnie: 0\nPiątkowo: 0\nSiódemkowo: 0\nÓsemkowo: 0\nSzesnastkowo: 0");
}
else
{
printf("Binarnie: ");
f(n, 2);
printf("\nPiątkowo: ");
f(n, 5);
printf("\nSiódemkowo: ");
f(n, 7);
printf("\nÓsemkowo: ");
f(n, 8);
printf("\nSzesnastkowo: ");
f(n, 16);
}
return 0;
}
Z góry dziękuję za pomoc:)