Buongiorno a tutti, scusate se vi disturbo, volevo chiedervi il vostro aiuto su un programma C che dice: uno strumento di misura fornisce un dato ogni minuto nell'arco di un'ora. Per ovviare a possibili errori si vogliono elaborare i valori rilevati sostituendoli con una media a tre punti: ogni elemento viene sostituito dalla media di se stesso, dall'elemento che lo precede e di quello che lo segue; per i due elementi estremi viene considerato due volte il valore dell'elemento stesso e il successivo o il precedente nel caso si tratti rispettivamente del primo o dell'ultimo elemento. Realizzare un programma che implementi l'elaborazione descritta acquisendo i dati da tastiera. Io di questo programma ho capito che i numeri da inserire sono 60,perchè è un dato ogni minuto per un'ora, devo fare la media fra l'elemento, il suo precedente e successivo e dividerlo per tre ed è questo il risultato che mi dovrà venire chiaramente dovrò mettere una condizione per stabilire se il primo o l'ultimo elemento per effettuare due volte il procedimento della media. Ho provato a fare da solo il programma prima di chiedervi aiuto, ma non è mi è riuscito il procedimento della media.
#include<iostream>
#define DIM 60
using namespace std;
void inserisci(int v[]);
float media(int v[]);
void stampa_media(int v[]);
int main() {
int v[DIM];
inserisci(v);
media(v);
cout << "Media" << media;
system("Pause");
}
void inserisci(int v[]) {
for (int i = 0; i < DIM; i++) {
cout << "Inserisci i dati [" << i << "]";
cin >> v[i];
}
}
float media(int v[]) {
float media;
int precedente, successivo,int i;
for (int i = 0; i < DIM; i++); {
precedente = v[i] - 1;
successivo = v[i] + 1;
media = v[i] + successivo + precedente / 3;
v[i] = media;
}
return media;
}
Grazie a tutti quelli che proveranno ad aiutarmi.