/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

otro problema (en c)

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
konet



Registrado: 21 Oct 2007
Mensajes: 7

MensajePublicado: 29/10/2007 12:46 pm
Título: otro problema (en c)

pues ahora si que nunca abro un post hasta cuando ya no se como solucionar el problema.

pues dice asi:
en un centro de verificacion de automoviles se desea saber el promedio de puntos contaminantes de los primeros 25 automoviles que lleguen.
Asimismo se desea saber los puntos contaminantes del carro que mas contamino y del que menos que contamino


mi idea era poner 25 printf y scanf para que me dieran sus puntos contaminantes pero con esa idea solo podira sacar el promedio
¿pero como se cual es el auto que mas contamino y el que menos contamino?

ahora mi duda:

con que estructura de control (de repeticion)
puedo pedir los 25 putnos de cada carro y al mismo tiempo guardarlos
y determinar el promedio
y el que mas contamino y el que menos contamino?
Volver arriba
_Martin_



Registrado: 03 Ago 2006
Mensajes: 163

MensajePublicado: 29/10/2007 3:09 pm
Título:

Hola, bueno la idea de 25 printfs es un poco patologica. Lo ideal seria un solo printf y éste que este en un bucle, (for, while, do-while,) El mismo concepto se aplica al scanf, Ej:

Código:


for ( i=1 ; i<=25; i++)
  {
   printf("Ingrese un valor: \n");
   scanf("%i", &DATO);
  }


Si observas con detenimiento, pido un valor y lo guardo en la variable DATO, y luego pido otro valor pero lo guardo en la misma variable. El valor anterior lo he perdido!!!

En estos casos, en los que es necesario guardar una serie de datos consecutivos, se utiliza un array (o vector, o matriz, o tabla, o arreglo, o como quieras llamarlo)

Lo correcto seria

Código:


for ( i=1 ; i<=25; i++)
  {
   printf("Ingrese un valor: \n");
   scanf("%i", &DATO[i]);
  }


Si no entiendes el concepto de array ( o vector o ...) fijate en el curso de esta pagina. Tendras una muy buena referencia

Una vez que entiendas como funcionan los arrays y sepas usarlos (escribir en ellos, leer y recorrerlos) podras, seguramente, resolver el resto de tus dudas.

Saludos
Volver arriba
cheroky



Registrado: 22 Sep 2005
Mensajes: 1372
Ubicación: En ecx esperando un call

MensajePublicado: 30/10/2007 3:59 pm
Título:

Solo una aclaración, los arrays se indexan desde 0 a n-1.

S2.
_________________
- Explícito es mejor que implícito.
- Simple es mejor que complejo.
- Complejo es mejor que complicado.
- Plano es mejor que anidado.
- Ralo es mejor que denso.
Volver arriba
david_celta



Registrado: 02 Jun 2005
Mensajes: 45

MensajePublicado: 30/10/2007 6:52 pm
Título:

Código:

void main()
{
   const int maximoAutos=25;

   int promedio;
   int maximo;
   int minimo;

   int puntosContaminantes;
   int suma;
   int numeroAuto;
   int finLlegadaAutos;

   numeroAuto=1;
   finLlegadaAutos=0;
   suma=0;
   maximo=0;
   minimo=0;

   while (!finLlegadaAutos) // mientras no sea fin de llegada de autos
   {
      if (numeroAuto=maximoAutos) // se han completado el total de autos
         finLlegadaAutos=1;

      // Ingresas un numero de puntos contaminantes > 0
      print("Dame los puntos contaminates del auto #");
      print("%d", numeroAuto);
      printf (" (un numero entero): ");
      scanf("%d", puntosContaminantes);

      // vamos acumulando para sacar el promedio
      suma=suma+puntosContaminantes;

      // sacar el maximo punto contaminante hasta el momento
      if(maximo=0)
         maximo=puntosContaminantes;
      else if (puntosContaminates>maximo)
         maximo=puntosContaminantes;

      // sacar el minimo punto contaminante hasta el momento
      if (minimo=0)
         minimo=puntosContaminantes;
      else if (puntosContaminantes<minimo)
         minimo=puntosContaminantes;

      numeroAuto=numeroAuto+1; // siguiente auto
   }

   //calcula promedio de puntos contaminantes
   promedio=suma/numeroAuto;

   // imprime resultados
   printf("Promedio de puntos contaminates: %d", promedio);
   printf("Maximo Punto Contaminante:%d", maximo);
   printf("Minimo Punto Contaminante:%d", minimo);

   getch();
}



Bueno lo de arriba no se si funcione pero la idea básica, antes de usar un array es usar un minimo y un maximo e ir verficando los valores que se van ingresando para ver si vamos obteniendo un maximo o un minimo, ir sumando todos los puntos y al final calcular el promedio, de esta manera obtenemos unicamente los datos que nos interesan

Si usas un array es probable que termines haciendo dos bucles (es probable, es probable)

Bueno ahi para que lo veas, a ver si te sirve en algo
_________________
Este es un bloque de texto que se puede agregar a los mensajes que publique. Texto Compilado en C++. 0 errors y 1 un warning.
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com