programa determinara el mayor y el menor

Iniciado por douglascarvallo, 22 Junio 2013, 04:52 AM

0 Miembros y 1 Visitante están viendo este tema.

douglascarvallo

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.....

engel lex

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...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

leosansan

#2
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!
   


Reeditado y corregido.

rir3760

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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language