Qualcuno sa trovare l'errore o gli errori in questo programma e eventualmente correggerlo?
grazie mille
/*Si scriva un programma che, assegnato in ingresso, da tastiera, il riempimento n
ed i valori di un vettore V di numeri reali, calcoli il massimo max dei valori memorizzati nel vettore V
e costruisca quindi un nuovo vettore diff in cui siano memorizzate le differenze tra il valore di max
ed ogni valore di V. Stampi quindi il valore max, il vettore diff ed il valore maxdif del massimo contenuto
nel vettore diff. Il programma deve essere articolato in funzioni.
Esempio
INPUT:
V = 2.1 4.2 1.3 3.2 7.1 6.3
OUTPUT:
Il massimo fra i valori del vettore V e': 7.1
Il vettore delle differenze e':
5 2.9 5.8 3.9 0 0.8
La massima differenza e': 5.8 */
#include <iostream>
#include <stdlib.h>
using namespace std;
//Dichiarazioni
int const MAX_ELEM = 50;
typedef float vett [MAX_ELEM];
//Prototipi
void leggi (int,vett);
float ricerca_max (int,vett);
void differenza (int,vett,float);
float differenza_max (int,vett);
void stampa (int,float,vett,float);
//Main
int main () {
int n;
vett v;
float massimo;
vett diff;
float diffmax;
leggi (n,v);
massimo = ricerca_max (n,v);
differenza(n,v,massimo);
diffmax=differenza_max(n,diff);
stampa(n,massimo,diff,diffmax);
system("PAUSE");
return 0;
}
// Funzione leggi
void leggi ( int n,vett v ) {
int i;
cout << "Inserire il riempimento del vettore di massimo "<<MAX_ELEM<< "elementi";
cin >> n;
for (i=0;i<n;i++) {
cout << "Inserire l'elemento di posto "<< i+1<< " ";
cin >> v;
}
}
// Funzione ricerca massimo
float ricerca_massimo (int n,vett v) {
int i;
float max = v[0];
for (i=1;i<n;i++) {
if ( v> max)
max= v;
}
return max;
}
// Funzione vettore differenze
void differenza (int n,vett v,float massimo) {
int i;
vett diff;
for (i=0;i<n;i++) {
diff= massimo - v;
}
}
// Funzione ricerca massima differenza
float differenza_max ( int n,vett diff) {
int i;
float diffmax = diff[0];
for (i=1;i<n;i++) {
if (diff > diffmax)
diffmax=diff;
}
return diffmax;
}
// Funzione stampa
void stampa (int n,float massimo,vett diff,float diffmax) {
int i;
cout << "Il massimo tra i valori inseriti è "<< massimo <<" ";
for (i=0;i<n;i++) {
cout << "Il vettore delle differenze è" ;
cout << diff;
}
cout << "La massima differenza è";
cout << diffmax;
}