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!