|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Sep 2010
Messaggi: 19
|
[C] Problema banale
Salve a tutti, sto cercando di fare un programma che sommi due numeri interi (quinti niente di difficile, sono alle prime armi
![]() Il codice sorgente: #include <stdio.h> #include <stdlib.h> int main() { int a, b, c; printf ("Inserisci primo numero: \n"); scanf ("%d", &a); printf ("Inserisci secondo numero: \n"); scanf ("%d", &b); ("a + b = c"); printf ("Il risultato e': \n %d", c); system("PAUSE"); return 0; } Perdonate la banalità Avete idee di cosa possa causare il problema? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2009
Città: Milano
Messaggi: 449
|
Non hai inizializzato le variabili; il sistema quando si trova int a,b,c assegna ad un certo indirizzo di memoria quelle variabili, che però contengono ancora il loro vecchio valore. Se tu le inizializzi (ovvero le poni uguali a 0) la memoria si "pulisce" o meglio il valore viene sovrascritto da 0, e tu sei pronto per assegnarci il valore acquisito da tastiera.
__________________
Intel i5 2500k | Arctic Cooling Freezer i30 | Asrock Z68 Extreme 3 Gen 3 | Lancool PC-K62 | Corsair TX750M | MSI nVidia GTX 560 Ti Twin Frozr II | Corsair Vengeance LP Black 1600MHz 2x4GB | Crucial M4 128GB | Western Digital Elements 1TB | Seagate 500GB | Cooler Master Spawn | Logitech G110 Concluso positivamente con: massimo3550! |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Sep 2010
Messaggi: 19
|
Dici così?
#include <stdio.h> #include <stdlib.h> int main() { int a=0, b=0, c=0; printf ("Inserisci primo numero: \n"); scanf ("%d", &a); printf ("Inserisci secondo numero: \n"); scanf ("%d", &b); ("a + b = c"); printf ("Il risultato e': \n %d", c); system("PAUSE"); return 0; } Eseguendo il tutto una volta arrivato al primo printf/scanf mi chiude il programma...
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Oct 2007
Messaggi: 250
|
Che senso ha questo rigo?
Per fare la somma devi semplicemente porre c = a+b, senza nessuna parentesi o virgoletta. Ciò che sta dentro virgolette viene interpretato come stringa. Il programma ti stampa quel valore perché alla variabile c non hai assegnato niente dato che quel rigo non fa la somma. PS non é necessario inizializzare le variabili a 0. Ultima modifica di blackgin : 23-01-2012 alle 22:39. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2009
Città: Milano
Messaggi: 449
|
Codice corretto:
Codice:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c=0;
printf ("Inserisci primo numero: \n");
scanf ("%d", &a);
printf ("Inserisci secondo numero: \n");
scanf ("%d", &b);
c = a + b;
printf ("Il risultato e': %d\n", c);
system("PAUSE");
return 0;
}
__________________
Intel i5 2500k | Arctic Cooling Freezer i30 | Asrock Z68 Extreme 3 Gen 3 | Lancool PC-K62 | Corsair TX750M | MSI nVidia GTX 560 Ti Twin Frozr II | Corsair Vengeance LP Black 1600MHz 2x4GB | Crucial M4 128GB | Western Digital Elements 1TB | Seagate 500GB | Cooler Master Spawn | Logitech G110 Concluso positivamente con: massimo3550! |
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Sep 2010
Messaggi: 19
|
Uhhh grazie mille
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12919
|
Come sempre, diamola un'occhiata alla sintassi del linguaggio prima di metterci a programmare
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:14.





















