| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
konet
Registrado: 21 Oct 2007 Mensajes: 7
| Publicado: 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
| Publicado: 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
| Publicado: 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
| Publicado: 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 | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |