Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: douglascarvallo en 22 Junio 2013, 04:52 am



Título: programa determinara el mayor y el menor
Publicado por: douglascarvallo en 22 Junio 2013, 04:52 am
Ayuda para arreglar este programa:

Citar
#include <iostream.h>

int x,mayor,menor,i;

int main (void)
{
cout << "Ingrese 100 numerosr" <<endl<<endl;
menor = 99999999;
mayor = -999;
for (i=1 ; i<=100 ; i++)
{
cout << "Ingrese el dato numérico: " <<endl;
cin >> x;
if(i>mayor)
{
mayor=x;
}
if(x<menor)
{
menor=x;
}
}

cout << "El numero mayor ingresado es: " <<mayor<<endl;
cout << "El numero menor ingresado es: " <<menor<<endl;
system("pause");
return 0;
}

quiero que al ejecutarlo en la pantalla negra diga: "Ingrese el dato numérico 1:"
Ingrese el dato numérico 2:
Ingrese el dato numérico 3:

O sea que tenga un conteo, 1 , 2, 3.....


Título: Re: 100 numeros y el programa determinara el mayor y el menor
Publicado por: engel lex en 22 Junio 2013, 05:09 am
Código:
cout << "Ingrese el dato numérico: " << i <<endl;

ya el for está recorriendo esos valores... solo tienes que en cout agregar tu salida con el contador del for...


Título: Re: 100 numeros y el programa determinara el mayor y el menor
Publicado por: leosansan en 22 Junio 2013, 08:21 am
Ayuda para arreglar este programa:


Sólo indicarte un par de cositas:

* En general, en C++ le sobra el .h a la librería iostream. Otra cosa es que estuviera el código en C.

* Para usar la función system hace falta la librería cstdlib.

* No tiene mucho sentido declarar las variables como globales en este caso. Fíjate que las tienes declaradas fuera de la función main y además es una buena práctica inicializarlas previamente.

* Cuando una función, como if, while for se componen de una sola sentencia las llaves están de más, sólo enmarañan el código.

* Acostúmbrate a "indentar" correctamente el código. Eso facilita su posterior lectura.

* En general es necesario, si no usas la forma abreviada, el incluir using namespace std para el uso de los cout y cin.

* Los valores MAX y MIN es arriesgado ponerlos a voleo. Por ejemplo ese MAX de -999 podría ser superado fácilmente. Yo aconsejo utilizar los valores MAX y MIN que te da la librería climits, donde están los max y min de los distintos tipos de enteros, entre otros valores.


Código
  1. #include <iostream>
  2. #include <climits>
  3. #include <cstdlib>
  4. using namespace std;
  5.  
  6. int main (void)
  7. {
  8.    int x=0,mayor=0,menor=0,i=0;
  9.    cout << "Ingrese 100 numeros y el programa determinara el mayor y el menor" <<endl<<endl;
  10.    menor = INT_MAX;
  11.    mayor = INT_MIN;
  12.    for (i=0 ; i<100 ; i++)
  13.    {
  14.        cout << "Ingrese el dato numerico: "<<i+1 <<endl;
  15.        cin >> x;
  16.        if(x>mayor)
  17.            mayor=x;
  18.        if(x<menor)
  19.            menor=x;
  20.    }
  21.    cout << "El numero mayor ingresado es: " <<mayor<<endl;
  22.    cout << "El numero menor ingresado es: " <<menor<<endl;
  23.    system("pause");
  24.    return 0;
  25. }
  26.  

 Saluditos!
    
(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)

Reeditado y corregido.


Título: Re: 100 numeros y el programa determinara el mayor y el menor
Publicado por: rir3760 en 22 Junio 2013, 15:18 pm
Otro error en el programa se encuentra en el bucle:
Código
  1. for (i = 1; i <= 100; i++){
  2.   cout << "Ingrese el dato numérico: " << endl;
  3.   cin >> x;
  4.  
  5.   if (i > mayor){ // <==
  6.      mayor = x;
  7.   }
  8.   if (x < menor){
  9.      menor = x;
  10.   }
  11. }
En la linea indicada estas comparando el mayor con el indice "i" cuando deberías comparar con el valor introducido por el usuario: "x > mayor".

Un saludo


Título: Re: programa determinara el mayor y el menor
Publicado por: douglascarvallo en 23 Junio 2013, 07:05 am
Gracias por su ayuda.