Hola a todos, tengo un problema con este código, no entiendo que está sucediendo después de que aplico el primer for. Muchas gracias de antemano por la ayuda que puedan brindarme.
#include <iostream>
#include <stdlib.h>
using namespace std;
int main (int argc, char * const argv[]) {
int M,i,z;
float *datos;
cout << "Digite la cantidad de datos que requiere "<<endl;
cin >> M;
datos = new float [M];
cout << "Ahora ingrese "<<M<<" datos"<<endl;
for (i=0; i<M; i++) {
cin >> datos[i];
}
cout << "Este es el cuarto dato antes "<< datos[3]<<endl;
// Hallemos el máximo
for (i=0; i<M-1; i++) {
if (datos[i]>datos[i+1]) {
z=datos[i];
datos[i]=datos[i+i];
datos[i+1]=z;
}}
cout << "El máximo valor de la lista de números es "<< datos[M-1]<<endl;
cout <<"Este es el cuarto dato después "<< datos[3]<<endl; // Aqui ya no funciona
//Hallemos el mínimo
for (i=0; i<M-1; i++) {
if (datos[i]<datos[i+1]) {
z=datos[i];
datos[i]=datos[i+1];
datos[i+1]=z;
}
}
cout << "El mínimo valor de la lista de números es "<<datos[M-1]<<endl;
return 0;
}
Esto es lo que me arroja después de correrlo, todo va bien justo después de aplicar el primer for.
Digite la cantidad de datos que requiere
6
Ahora ingrese 6 datos
12
11
6
7
1
9
Este es el cuarto dato antes 7
El máximo valor de la lista de números es 12
Este es el cuarto dato después 0
El mínimo valor de la lista de números es 0