Witam, mam taki mały problem. Otóż program, który napisałem nie poprawnie się sprawuje na liczbach, które w systemie dziesiętny podchodzą pod zakres long long int'a i nie wiem jaki jest tego powód, mógł by mi ktoś pomóc?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int kod[21], i=0;
char z;
unsigned long long wynik=0;
puts("Podaj liczbe w kodzie dziewiatkowym.");
while((z=getchar())!='\n')
{
z-=48; //zamiana z char na int
if(z>=0&&z<=8)
{
kod[i]=z;
i++;
}
else
{
puts("Zle dane.\nUruchom program jeszcze raz i podaj poprawne dane");
i=0;
return 1;
}
}
for(int wykladnik=0, j=i-1; j>=0; j--)
{
wynik+=kod[j]*pow(9,wykladnik);
wykladnik++;
}
printf("\nPodana liczba w systemie dziesietnym jest rowna: %llu\n\n", wynik);
return 0;
}