Test Foro de elhacker.net SMF 2.1

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
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
Cita de: douglascarvallo en 22 Junio 2013, 04:52 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 (cpp) [Seleccionar]
#include <iostream>
#include <climits>
#include <cstdlib>
using namespace std;

int main (void)
{
   int x=0,mayor=0,menor=0,i=0;
   cout << "Ingrese 100 numeros y el programa determinara el mayor y el menor" <<endl<<endl;
   menor = INT_MAX;
   mayor = INT_MIN;
   for (i=0 ; i<100 ; i++)
   {
       cout << "Ingrese el dato numerico: "<<i+1 <<endl;
       cin >> x;
       if(x>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;
}


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 (cpp) [Seleccionar]
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;
   }
}

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.