elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Devolver el menor de un array
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Devolver el menor de un array  (Leído 2,716 veces)
chicainge

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Devolver el menor de un array
« en: 10 Agosto 2014, 13:55 pm »

El programa me compila perfectamente, pero al introducirle los números se para no hace nada y no encuentro el error, podrían ayudarme por favor:(

Hacer un subalgoritmo que reciba un array de N números enteros y devuelva el valor mínimo de todos.

Código:
#include <iostream>
using namespace std;

const unsigned MAX=20; //el array va de 0 a 19 k son los 20 cuadraditos

typedef int nument[MAX];

int minimo(nument);

int main(){
 //habia que inicalizar el array?¿
 nument num;
 int nu;
 cout<<" Cuentos numero vas a introducir: ";
 cin>>nu;
 cout<<"introduce una secuencia de numeros enteros: ";

 for(int i=0;i<nu;i++){
   cin>>num[i];
 }
 num[nu]=' ';
 cout<<"El numero mas pequeño es "<<minimo(num)<<endl;

 return 0;
}

int minimo(nument Array){
 int aux1,aux2;
 for(int i=0; i<MAX-1; i++){
  while(Array[i+1]!=' '){
    if(Array[i]>=Array[i+1]){
      aux1=Array[i];
      aux2=Array[i+1];
      Array[i+1]=aux1;
      Array[i]=aux2;
   }
  }
 }
 return aux2;
}


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Devolver el menor de un array
« Respuesta #1 en: 10 Agosto 2014, 14:16 pm »

Solo una razón puede haber para que se quede en un bucle infinito: Ese while.

"Array[i+1]!=' '"
Array es un arreglo de enteros. ' ' es un espacio, que en ascii es 32. Estás diciendo que haga ese while hasta que Array[i+i]!=32.

Anteriormente, pusiste que num[nu] = 32. Yo no elegiría ese número, ya que a lo mejor se lo introduces por teclado tú.

Yo me replantearía esa función minimo(). Con un bucle for, llega.


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Devolver el menor de un array
« Respuesta #2 en: 10 Agosto 2014, 15:30 pm »

El programa me compila perfectamente, pero al introducirle los números se para no hace nada y no encuentro el error, podrían ayudarme por favor:(
............................

En realidad si que hace, pero no termina. En el while, que por cierto está de más, no varías el valor de i con lo que el while provoca un  bucle infinito, tendrías que poner al final del mismo algo como i++.

Pero lo correcto es cambiar un poco esa función "minimo". Además de lo ya mencionado de que sobra el while, conviene pasarle como parámetro el valor de la variable nu ya que tal como lo tienes con MAX, y si has introducido un número de valores inferior al mismo, se estaría tomando posiciones de memoria no definidas con el consiguiente riesgo de que contengan basura y distorsione el valor calculado del mínimo. Y el valor de nu=' ' sobraría al pasar como argumento su valor.

Aunque se puede abreviar, la función "minimo" puede ser algo como:

Código
  1. int minimo ( nument Array , int nu) {
  2. int minimo = Array [ 0 ] ;
  3. for ( int i = 1 ; i < nu ; i++ )
  4.    if ( Array [ i ] <= minimo )
  5.      minimo = Array [ i ] ;
  6. return minimo ;
  7. }

¡¡¡¡ Saluditos! ..... !!!!



EDITADO.
« Última modificación: 10 Agosto 2014, 16:13 pm por leosansan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
DEVOLVER VALORES ALEATORIOS DE UNA ARRAY EN C#?????'
.NET (C#, VB.NET, ASP)
kanlet 0 4,598 Último mensaje 19 Junio 2011, 20:22 pm
por kanlet
[C] Devolver array bidimensional mediante una función « 1 2 »
Programación C/C++
crawler! 12 21,716 Último mensaje 24 Junio 2013, 22:00 pm
por crawler!
Error al devolver array multidimensional
Java
viher 0 1,842 Último mensaje 25 Diciembre 2014, 00:30 am
por viher
Devolver un Array
Programación C/C++
AprendiendoAProgramar 3 2,755 Último mensaje 3 Enero 2017, 15:24 pm
por TheFlash
[Eclipse ARM] Recorrer array, encontrar el elemento mayor y devolver su posicion
Programación General
Kougami 1 2,701 Último mensaje 16 Abril 2017, 22:42 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines