[ brankec @ 17.02.2008. 20:42 ] @
Imam sledeci problem:
imam promenljivu PODACI tipa CHAR velicine 15 (to su u stavri 5 i 6-to cifreni podaci). Pomocu funkcije ATOI () konvertujem CHAR u INTEGER. I onda bih trebao sabrati sve te brojeve i u tome je problem. Sledeci kod je sustina momg problema:

char podaci[15];
unsigned int i=0,x,suma;
while (i<1330)
{
x=atoi(podaci);
suma+=x;
i++;
}

Zanima me kako da deklarisem X i SUMA (SUMA bi trebala biti 8 ili 9-to cifreni broj) promenljive (probao sam sa UNSIGNED LONG - %ul) da bih mogao sabirati.
Ili je moje razmisljanje pogresno.

Unapred hvala na svakoj pomoci.

[Ovu poruku je menjao brankec dana 17.02.2008. u 22:42 GMT+1]
[ X Files @ 17.02.2008. 21:21 ] @
Koji kompajler koristis?

Broj: 999999999 = 111011100110101100100111111111

Dakle, 9-cifreni broj je predstavljen sa 30 bitova, sto znaci da staje u odgovarajuci 4-bajtni tip i bez unsigned.

int
long
long long
unsigned int
unsigned long
unsigned long long
_int64

... su tipovi koji ti odgovaraju.

Sa sizeof() uvek mozes saznati velicinu nekog tipa. Na primer:
printf( "%d %d", sizeof(int), sizeof(long long) ); /* za 'int' i za 'long long' */

Na osnovu koda koji si postavio, sticem utisak da imas beskonacnu petlju, pa mozda cudni rezultati proizilaze iz toga.
[ brankec @ 17.02.2008. 22:12 ] @
Problem resen.

Moja greska je bila u tome sto sam pri konverziji koristio ATOI() funkciju umesto ATOL() funkcije.