Ciao a tutti, in questi giorni sto studiano la programmazione in c++ e oggi, affrontando l'argomento puntatori, mi sono imbattuto in un esercizio che non riesco a risolvere.
In pratica devo inserire all'interno di un array dei valori, poi chiamo una funzione che riceve due parametri: double* p, int n, dove p e' il puntatore alla testa dell'array e n e' la lunghezza dell'array.
Questa funzione deve trovare il valore minimo dell'array e ritornare alla funzione main, l'indirizzo del valore minore. Ho cosi' svolto l'esercizio:
quando provo a compilare il codice, mi viene generato quest'errore:codice:#include <iostream> using namespace std; double* min (double* a, int n); int main () { int n; double* p; cout << "Inserire la dimensione dell'array" << endl; cin >> n; double a[n]; p = a; cout << "Inserire " << n << " valori nell'array" << endl; for (int i=0; i<n; ++i) { cin >> a[i]; } cout << endl; p = min (&p, a); cout << "L'indirizzo dell'elemento minore e': " << p << endl; return 0; } double* min (double* p, int n) { double min = a[0]; double* add_min = a; for (int i=1; i<n; ++i) { if(a[i]<=min) { min=a[i]; add_min=&a[i]; } } return add_min; }
potete aiutarmi?codice:array_punt.cc: In function ‘int main()’: array_punt.cc:20:13: error: no matching function for call to ‘min(double**, int&)’ array_punt.cc:20:13: note: candidates are: array_punt.cc:4:9: note: double* min(double*, int) array_punt.cc:4:9: note: no known conversion for argument 1 from ‘double**’ to ‘double*’ /usr/include/c++/4.6/bits/stl_algobase.h:233:5: note: template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare) /usr/include/c++/4.6/bits/stl_algobase.h:187:5: note: template<class _Tp> const _Tp& std::min(const _Tp&, const _Tp&)

Rispondi quotando