#include bool max_compare(double a, double b) { return a > b ; } bool min_compare(double a, double b) { return a < b ; } bool get_value(double*&); double get_min_max( double*, int, bool (*)(double,double) ); int main() { double valori[100] ; double* pval = valori; cout << "Inserisci i valori (termina con /):\n\t" ; while ( pval-valori < 100 ) if (!get_value(pval)) break; int dim = pval-valori; cout << "Il massimo dei " << dim << " valori inseriti e': " << get_min_max(valori,dim,max_compare) << '\n'; cout << "Il minimo dei " << dim << " valori inseriti e': " << get_min_max(valori,dim,min_compare) << '\n' << '\n'; return 0; } bool get_value(double*& pval) { int status; char extrach; do { cin >> *pval; status = cin.rdstate(); if ( status ) { cin.clear(); cin >> extrach; if ( extrach == '/' ) return false; } } while (status) ; pval++; return true; } double get_min_max( double* pval, int dim, bool (*comp)(double,double) ) { double ris = *pval++; for(int i=1; i < dim; i++,pval++) ris = comp(*pval,ris)? *pval : ris; return ris; }