Ciao a tutti, devo fare un esercizio che mi fa inserire dei numeri float in un array allocato dinamicamente e controlli se l'array è ordinato in maniera crescente, e fa un cout mentre se non è ordinato in maniera crescente lo dica in output e dia il minimo valore nell'array e la relativa posizione, stessa cosa per il massimo... vi lascio il codice da me elaborato, sono sicuro che c'è una piccola svista ma non sto riuscendo a trovarla... grazie a tutti
Codice:
#include <iostream>
using namespace std;
//verifico se l'array è ordinato o no
bool verord (float vet[], int dim) {
for (int i=0; i<dim-1; i++) {
if (vet[i]<vet[i+1]) {
return true;
} else return false;
}
}
//trovo il min il max e la posizione
void asd (float ve[], int di) {
int posmin=0,posmax=0;
float min,max;
min = ve[0];
max = ve[0];
for (int i=0; i<di; i++) {
if (ve[i]< min) {
min = ve[i];
posmin = i;
}
if (ve[i]>max) {
max = ve[i];
posmax = i;
}
}
cout<<"Valore minimo: "<<min<<" "<<"Posizione minimo: "<<posmin<<endl;
cout<<"Valore massimo: "<<max<<" "<<"Posizione massimo: "<<posmax<<endl;
}
int main() {
float *arr;
int d;
//alloco l'array
cout<<"Numero elementi vet1: ";
cin>>d;
arr = new float[d];
cout<<"vet1:\n";
for (int i=0; i<d; i++) {
cin>>arr[i];
}
//controllo se è ordinato o no
if (verord(arr,d) == true) {
cout<<"Array ordinato";
} else {
cout<<"Array non ordinato"<<endl;
asd (arr, d);
}
//deallocazione array
delete []arr;
return 0;
}