Witam , miałem zamiar napisać program który jakąś liczbę z programu w tym wypadku (max_size) stringa zapisze do tablicy char w postaci:
liczba=2345
t[0]=2
t[1]=3
t[2]=4
t[3]=5
string h;
int k=h.max_size();
cout<<k<<endl;
int jed[10];
int n=10;
for(int i=0;i<n;i++)
{
jed[i]=(k/(pow(10,(n-i-1)))); //tutaj dzielimy liczbę by uzyskać pierwszą cyfrę
int m=pow(10,(n-i-1));
cout<<"i= "<<i<<" m= "<<m<<endl; //pomocnicze -tutaj jest błąd m = 999999999 zamiast 1000000000
long int x=jed[i]*m;
cout<<"odejmujemy "<< k <<" (k) - "<<x<<" "<< "jed[i]=" <<jed[i]<<endl; //pomocnicze
k-=x;
}
Zrobiłem kilka wyświetleń pomocniczych na których widać że przy potęgowaniu np. 10^9 zamiast liczby 1000000000 jest 999999999. Dlaczego tak się dzieje ?
Dla wygody pokażę jak to ma wyglądać:
mam liczbę 1045
dzielę ją na 1000 =>zostaje 1 <-
1 mnożę razy 1000 =1000
od 1045-1000 = 045
45/100 =>0 <-
0*100=>0
45-0=45
45/10=>4 <-
4*10=>40
45-40=>5
5/1=>5 <-
5*1=>5
5-5=0