View Full Version : [c++] riempire un array di 10 elementi e farne la somma
Davidino.gbr91
22-04-2008, 09:41
salve ho un problema con questo programma...
io sono arrivato fino a questo punto ma poi mi sono bloccato...come devo fare per risolvere il problema che mi è stato posto??
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int A[10],somma,i;
for (i=0;i<10;i++)
{
cout<<"inserisci A[i]: ";
cin >> A[i];
}
for (i=0;i<10;i++)
{
cout<<A[i];
}
somma+=A[i];
cout <<"la somma degli array e: "<<somma;
system("PAUSE");
return EXIT_SUCCESS;
}
grazie in anticipo
Ciao, nel tuo programma ci sono 2 errori
il primo è che devi inizializzare a 0 la variabile somma: infatti quando le variabili vengono allocate in memoria sono "sporche" nel senso che contengono valori strani che portano ad un risultato scorretto. Per questo motivo è buona norma di programmazione inizializzarle TUTTE, pena un pomeriggio intero a sbattersi nel cercare un problema inesistente (:muro:).
Il secondo è che l'istruzione somma+=A[i] addiziona alla variabile somma l'elemento della i-esima cella (i, grazie al for precedente ha assunto il valore 9).
Per far sommare tutti gli elementi devi quindi, con un for, scorrere tutto il vettore ed effettuare la somma cella per cella.
Ciao
Davidino.gbr91
22-04-2008, 09:57
ok per il primo problema ho risolto dato che è stato un piccolo errore di distrazione :P
per il secondo come devo fare dato che il ciclo for non mi è ancora del tutto chiaro??
per il secondo come devo fare dato che il ciclo for non mi è ancora del tutto chiaro??
Il ciclo for itera le istruzioni contenute tra le graffe finchè la condizione specificata risulta vera (la condizione è quella specificata alla destra del primo ; ). Tu quindi devi semplicemente fare un for analogo a quelli precedenti.
marra11mg
22-04-2008, 10:18
in parole povere, devi mettere somma+=A[i]; all'interno del ciclo FOR che sta di sopra ...
Così com'è scritto adesso, viene sommato alla variabile somma, soltanto l'ultimo valore dell'array A (cioè A[9])
Davidino.gbr91
22-04-2008, 10:25
cioè:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int A[10],somma=0,i;
for (i=0;i<10;i++)
{
cout<<"inserisci A[i]: ";
cin >> A[i];
}
for (somma+=A[i];i<10;i++)
{
cout<<A[i];
}
somma+=A[i];
cout <<"la somma degli array e: "<<somma;
system("PAUSE");
return EXIT_SUCCESS;
}
no torna al programma che hai postato all'inizio: metti l'istruzione somma+=A[i] in un for come gli altri:
for (i=0;i<10;i++)
{
somma+=A[i];
}
Davidino.gbr91
22-04-2008, 10:33
ok fino a qui tutto bene..pero c'è un problema...
quando vado a fare l'operazione mi da tutti i numeri in fila
esempio:
A[i]: 2
A[i]: 2
A[i]: 2
A[i]: 2
A[i]: 2
A[i]: 2
A[i]: 2
A[i]: 2
A[i]: 2
A[i]: 2
2468101214161820
mentre invece io voglio semplicemente stampare il n.20...come devo fare??
perchè il cout lo devi mettere fuori dal for
Davidino.gbr91
22-04-2008, 10:40
perfetto :D grazie mille ora le cose mi sono un po piu chiare!
Davidino.gbr91
22-04-2008, 10:48
un'ultimissima cosa...
qui qulacuno mi puo aiutare con un problema di sistemi :( ?
Se si tratta di risolvere un esercizio da capo a piedi no pena la chiusura del tread:
http://www.hwupgrade.it/forum/showthread.php?t=1631648
Davidino.gbr91
22-04-2008, 11:03
no no è che dovrei simulare il funzionamento di un ascensore usando open office calc...sarebbe un automa di mealy giusto?
no no è che dovrei simulare il funzionamento di un ascensore usando open office calc...sarebbe un automa di mealy giusto?
si, xò io e gli automi non andiamo tanto daccordo e quindi non so aiutarti... aspetta gente + preparata
Davidino.gbr91
22-04-2008, 11:16
ok :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.