Salve a tutti, ho un problema con questo programma. Premetto che sono all'inizio con l'uso delle funzioni e array. Il programma compila ma sbaglia (ancora non ho capito secondo quale logica) certe volte il massimo o il minimo. Per esempio scegliendo come numero su cui eseguire il programma "4" e usando come numeri "-9", "2", "0", "5" mi restituisce come massimo 5 e minimo 0. Spero mi possiate aiutare.
#include <iostream>
using namespace std;
float max(float a, float b){
float mas;
if(a>=b)
{mas=a;
}
else {
mas=b;
}
return mas;
}
float min(float a, float b){
float m;
if(a>=b)
{m=b;
}
else
{m=a;
}
return m;
}
int main () {
int k;
cout<<"inserisci numero di numeri di cui calcolare massimo e minimo"<<endl;
cin>>k;
float a[k];
for (int i=0; i<k; i++)
{cout<<"inserisci numero: "<<endl;
cin>>a[i];
}
float massimo=a[1], minimo=a[1];
for(int i=1; i<k; i++){
massimo=max(massimo,a[i]);
minimo=min(minimo,a[i]);
}
cout<<"il massimo e': "<<massimo<<endl;
cout<<"il minimo e': "<<minimo<<endl;
system ("pause");
return 0;
}