Aiuto a capire un frammento di programma
un altro programmino a cui non riesco a venirne a capo! il problema è che mi perdo a seguirlo! aiutatemi a trovare un nesso logico!
(MAXMEDIA e MAXESITI sono costanti numeriche definite nel sorgente; RAND_MAX è una costante numerica di libreria; la funzione rand() restituisce un numero casuale compreso tra 0 e RAND_MAX)
int i, j, numeri[MAXMEDIA], imax = 100, media, somma;
for (i=0; i<(MAXMEDIA-1); i++)
numeri=rand()*imax/RAND_MAX;
for (i=0; i<(MAXESITI-MAXMEDIA); i++)
{
numeri[MAXMEDIA-1]=rand()*imax/RAND_MAX;
somma = 0;
for (j=0;j
somma = somma + numeri[j];
media = somma / MAXMEDIA;
printf ("media n.%3d: %7.2lf\n", i, media);
for (j=0;j<(MAXMEDIA-1);j++)
numeri[j]=numeri[j+1];
}
grazie mille! mi serve trovare il filo logico, o meglio ciò che fa passo passo!
(MAXMEDIA e MAXESITI sono costanti numeriche definite nel sorgente; RAND_MAX è una costante numerica di libreria; la funzione rand() restituisce un numero casuale compreso tra 0 e RAND_MAX)
int i, j, numeri[MAXMEDIA], imax = 100, media, somma;
for (i=0; i<(MAXMEDIA-1); i++)
numeri=rand()*imax/RAND_MAX;
for (i=0; i<(MAXESITI-MAXMEDIA); i++)
{
numeri[MAXMEDIA-1]=rand()*imax/RAND_MAX;
somma = 0;
for (j=0;j
media = somma / MAXMEDIA;
printf ("media n.%3d: %7.2lf\n", i, media);
for (j=0;j<(MAXMEDIA-1);j++)
numeri[j]=numeri[j+1];
}
grazie mille! mi serve trovare il filo logico, o meglio ciò che fa passo passo!
Risposte
Cosa deve fare il programma?
L' errore potrebbe essere nel primo ciclo for: controlla l' indice di "numeri" e le parentesi graffe.
L' errore potrebbe essere nel primo ciclo for: controlla l' indice di "numeri" e le parentesi graffe.
ottima domanda.. è quello che sto cercando di capire! è un'esercizio dato in un vecchio esame e tento di risolverlo... il testo è giusto ho fatto copia e incolla!se vuoi ho la soluzione però non mi dice molto!
Ci sono errori comunque, oltre all'assenza di indentazione.
Quando si fornisce del codice, di solito si spiega anche a che serve!
Trovo davvero strano che tu non lo sappia.
int i, j, numeri[MAXMEDIA], imax = 100, media, somma; /* max puo' essere modificata in ogni momento * se e' pensata come costante, allora deve essere const int */ for (i=0; i<(MAXMEDIA-1); i++) numeri[i]=rand()*imax/RAND_MAX; // questo riempie il vettore numeri for (i=0; i<(MAXESITI-MAXMEDIA); i++) { numeri[MAXMEDIA-1]=rand()*imax/RAND_MAX; /* ad ogni passo del ciclo, l'ultima casella del vettore numeri viene sostituita con un nuovo valore */ somma = 0; // inizializzazione della variabile somma for (j=0;j<MAXMEDIA;j++) { somma = somma + numeri[j]; /* ad ogni ciclo, somma, inizialmente 0, viene incrementato del valore j-esimo del vettore * numeri, e alla fine sarà appunto la somma di tutti i suoi elementi */ media = somma / MAXMEDIA; /* questa media viene calcolata ad ogni ciclo */ printf ("media n.%3d: %7.2lf\n", i, media); /* stampo della media di ogni ciclo, es "media n.1: 430" * i simboli dopo il % specificano la precisione del numero */ } for (j=0;j<(MAXMEDIA-1);j++) numeri[j]=numeri[j+1]; /* vi e' uno "scalo" dei numeri nel vettore, ad es. v=1,2,3 --> v=2,3,? */ }
Quando si fornisce del codice, di solito si spiega anche a che serve!
Trovo davvero strano che tu non lo sappia.
ti ringrazio moltissimo! ho semplicemente preso il testo dell'esercizio da cui non ci uscivo! grazie ancora!