View Full Version : [C] Problema banale
Guglielmofe
23-01-2012, 21:15
Salve a tutti, sto cercando di fare un programma che sommi due numeri interi (quinti niente di difficile, sono alle prime armi :D ). Il problema è che come output mi esce sta roba... :mbe:
http://i42.tinypic.com/nnuvxc.png
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à :D
Avete idee di cosa possa causare il problema?
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.
Guglielmofe
23-01-2012, 21:33
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... :mbe:
blackgin
23-01-2012, 21:37
("a + b = c");
Che senso ha questo rigo? :D
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.
Codice corretto:
#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;
}
Guglielmofe
23-01-2012, 21:48
Uhhh grazie mille :D
Come sempre, diamola un'occhiata alla sintassi del linguaggio prima di metterci a programmare :read:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.