PDA

Visualizza la versione completa : [C]Non riesco a sommare 2 numeri


andrew low
03-01-2009, 22:34
Sto incominciando a studiare il C e, anceh se un po' complicato, mi pare molto interessante. Il problema che pongo è semplice, ciò che non riesco a fare è sommare due numeri, esattamente i numeri:

1134903170 e 1836311903

Questa la somma:

-1323752223

Il che pare ovvio che se ho 2 numeri positivi la loro somma non può essere un numero negativo.

Questo il codice:



#include<stdio.h>

int a;
int b;
int c;


main()
{
a = 0;
b = 1;
a = 1134903170;
b = 1836311903;
c = a + b;
printf("%i", c);
getchar();
}

pallinopinco
03-01-2009, 22:44
Il C è molto diverso dal Python, bisogna conoscere tanti dettagli in più. :)

Dichiarando una variabile di tipo int (signed) ed usando un compilatore che genera codice per architetture a 32 bit puoi rapprentare valori compresi tra −2147483648 e +2147483647. Nel suo caso devi visualizzare un intero unsigned per non incorrere in un overflow, dunque sostituisci %i con %u.

Stai studiando il C su un libro?

MItaly
03-01-2009, 22:49
In tal caso comunque sarebbe più chiaro anche dichiarare c come unsigned int.

andrew low
03-01-2009, 23:16
No, per il momento lo sto studiando dalla guida di html.it e credo che poi cercherò su qualche altra giuda web. E' molto importante averne uno cartaceo?

oregon
03-01-2009, 23:21
Originariamente inviato da andrew low
No, per il momento lo sto studiando dalla guida di html.it e credo che poi cercherò su qualche altra giuda web.

E farai molto male ...



E' molto importante averne uno cartaceo?

Sì ... studia sui libri. Sono sempre piu' precisi, completi e ... disponibili ... :-)

Al tuo posto, fra l'altro, inizierei non con un libro sul linguaggio, ma sull'informatica teorica (ad iniziare dal sistema di numerazione binario e la rappresentazione dei valori numerici interi).

pallinopinco
03-01-2009, 23:28
E' molto importante averne uno cartaceo?

E' fondamentale, soprattutto per un linguaggio come il C: è uno strumento potente ma nasconde molte insidie per il programmatore, non solo per quello alle prime armi.

La guida di html.it contiene numerosi errori. Evitala.

ruffy
03-01-2009, 23:56
Fallo a mente che fai prima!
Somma: 2971215073
Ci vuole tanto a capirlo, madonna booleana!

oregon
03-01-2009, 23:58
Originariamente inviato da ruffy
Fallo a mente che fai prima!
Somma: 2971215073
Ci vuole tanto a capirlo, madonna booleana!

Qualcuno mi dovra' aiutare a capire il senso di questo tuo (primo) intervento ...

:confused: :confused:

ruffy
04-01-2009, 00:04
Non ci credi?
L'ho fatta 2 volte per essere sicuro che fosse giusta!

pallinopinco
04-01-2009, 00:10
Non ci credi?
L'ho fatta 2 volte per essere sicuro che fosse giusta!


I casi sono 2: o sei un troll (ed in tal caso suppongo che avrai vita breve in questo forum) oppure non hai compreso che il programma di andrew low è soltanto un modo per familiarizzare con le basi del linguaggio C.

Loading