riccardop (Normal User)
Newbie
Messaggi: 9
Iscritto: 23/04/2009
|
buon giorno ragazzi sono disperato non riesco a creare una soregente per calcolare un valore massimo medio e minimo assieme sono riuscito solo a calcolare il valore medio
vorrei un aiuto da parte vostra ora vi posto il calcolo medio
vorrei integrare nella soregente il valore massimo e medio con quello minimo
in c++
Codice sorgente - presumibilmente C++ |
/*programma per il calcolo del valore medio di un numero non superiore a 1000 valore reali*/ #include <stdio.h> float A[1000],N,med; int i; main () { printf("il numero di valori da trattare sarà N="); scanf("%f",&N); if (N<=1000) { med=0; for (i=1;i<=N;i++) { printf("A[%d]=",i); scanf("%f",&A[i]); med=med+A[i]; } med=med/N; printf("med=%f",med); } else printf("il programma non e sviluppabile perchè e superiore a 1000"); }
|
Ultima modifica effettuata da riccardop il 23/04/2009 alle 11:02 |
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
|
|
lorenzo (Normal User)
Guru
Messaggi: 1178
Iscritto: 15/04/2008
|
sinceramente non ho ben capito, tu vuoi una funzione che ti calcoli il max, min e il medio di un array di float in contemporanea?
se è questo che vuoi....
Codice sorgente - presumibilmente C++ |
void TuttoInsieme(float arr[], int ln, float &max, float &min, float &med) { max = arr[0]; min = arr[0]; med = arr[0]; int i = 1; while(i < ln) { if(arr[i] < min) min = arr[i]; else if(arr[i] > max) max = arr[i]; med += arr[i]; i++; } med /= ln; }
|
Ultima modifica effettuata da lorenzo il 23/04/2009 alle 11:35 |
|
riccardop (Normal User)
Newbie
Messaggi: 9
Iscritto: 23/04/2009
|
esatto, mi servirebbe una funzione che riuscirebbe a calcolare il valore massimo medio e minimo essendo alle prime armi non so, come includerlo nella sorgente scritta in precedenza da me ....
grazie
Ultima modifica effettuata da riccardop il 23/04/2009 alle 13:07 |
|
lorenzo (Normal User)
Guru
Messaggi: 1178
Iscritto: 15/04/2008
|
ah se non hai fatto ancora le funzioni allora prendi il codice che ti ho scritto
Codice sorgente - presumibilmente C/C++ |
max = arr[0];
min = arr[0];
med = arr[0];
int i = 1;
while(i < ln)
{
if(arr[i] < min)
min = arr[i];
else
if(arr[i] > max)
max = arr[i];
med += arr[i];
i++;
}
med /= ln;
|
e inseriscilo nel main dopo l'acquisizione del vettore da tastiera.
quindi al posto di arr userai A
max e min devi dichiararle nello stesso modo in cui hai dichiatato med nel tuo codice
ovviamente ln è la lunghezza del vettore che nel tuo corrisponde ad N se non sbaglio
alla fine avrai i risultati nelle variabili max, med e min
Ultima modifica effettuata da lorenzo il 23/04/2009 alle 13:26 |
|
riccardop (Normal User)
Newbie
Messaggi: 9
Iscritto: 23/04/2009
|
Ok ho provato ma forse sto facendo qualche cavolata mi da molti errori
/*programma per il calcolo del valore massimo, medio, minimo, di un numero non superiore a 1000 valore reali*/
#include <stdio.h>
float A[1000],max,med,min,
int i;
main ()
max = arr[0];
min = arr[0];
med = arr[0];
int i = 1;
while(i < ln)
{
if(arr < min)
min = arr;
else
if(arr > max)
max = arr;
med += arr;
i++;
}
med /= ln;
void TuttoInsieme(float arr[], int ln, float &max, float &min, float &med)
{
max = arr[0];
min = arr[0];
med = arr[0];
int i = 1;
while(i < ln)
{
if(arr < min)
min = arr;
else
if(arr > max)
max = arr;
med += arr;
i++;
}
med /= ln;
}
|
|
lorenzo (Normal User)
Guru
Messaggi: 1178
Iscritto: 15/04/2008
|
Codice sorgente - presumibilmente C++ |
#include <stdio.h> float A[1000],N,med,max,min; int i; main () { printf("il numero di valori da trattare sarà N="); scanf("%f",&N); if (N<=1000) { i = 1 max = arr[0]; min = arr[0]; med = arr[0]; while(i < N) { if(arr[i] < min) min = arr[i]; else if(arr[i] > max) max = arr[i]; med += arr[i]; i++; } med /= ln; } else printf("il programma non e sviluppabile perchè e superiore a 1000"); }
|
in un programma C/C++ il main deve essere sempre presente
Ultima modifica effettuata da lorenzo il 23/04/2009 alle 13:45 |
|
riccardop (Normal User)
Newbie
Messaggi: 9
Iscritto: 23/04/2009
|
#include <stdio.h>
float A[1000],N,med,max,min;
int i;
main ()
{
printf("il numero di valori da trattare sarà N=");
scanf("%f",&N);
if (N<=1000)
{
i = 1
max = arr[0];
min = arr[0];
med = arr[0];
while(i < N)
{
if(arr < min)
min = arr;
else
if(arr > max)
max = arr;
med += arr;
i++;
}
med /= ln;
}
else
printf("il programma non e sviluppabile perchè e superiore a 1000");
}
Si comunque il main lo messo nella sorgente anche quella che ho postato io prima quando lo avvio mi da 6 errori che strano
|
|
lorenzo (Normal User)
Guru
Messaggi: 1178
Iscritto: 15/04/2008
|
veramente nel codice che hai inserito prima c'era scritto solo main()
senza parentesi ne altro e in più avevi mischiato la mia funzione al codice mettendola a caso.
Comunque mi sembra ovvio che il vettore deve essere pieno per essere analizzato.
Quindi prima di cominciare con max = arr[0] etc... devi fare un ciclo per inseirire i valori, proprio come avevi fatto prima
e poi ti avevo detto di cambiare arr in A, ma hai letto quello che ti ho scritto o hai solo copiato il codice????
Ultima modifica effettuata da lorenzo il 23/04/2009 alle 14:18 |
|