elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 03:00  


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  que quiere decir este ejercicio?[c]
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: que quiere decir este ejercicio?[c]  (Leído 2,433 veces)
dato000


Desconectado Desconectado

Mensajes: 618


Estudiando...o se supone...


Ver Perfil
Re: que quiere decir este ejercicio?[c]
« Respuesta #15 en: 16 Diciembre 2010, 02:07 »

Es un ejercicio relativamente sencillo, yo estoy en DAI y tuve que hacer uno similar pero algo más complejo hace poco. Lo que debes de hacer es lo que te ha dicho diskontrol. Te voy a poner el código del que tuve que hacer yo, tiene bastantes cosas que no necesita el tuyo pero si lo entiendes te irá bien:

/*
16. Introducir por teclado las edades de 25 alumnos. Validar que son números comprendidos entre 17 y 30. Obtener y visualizar
la edad del más mayor y ver cuántas veces se repite esa edad. Obtener y visualizar la edad del menor y ver cuántas veces se
repite esa edad. Además indicar la edad media (sin decimales) de la clase.
*/
Código:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int edad, contador=1, mayor=0, contmay=0, contmen=0, suma=0, menor=30, media=0;
    for (contador; contador<=8;contador++)
    {
            printf("Introducir edad entre 17 y 30: ");
            scanf("%d", &edad);
            fflush(stdin);
        while (edad<17 || edad>30)
        {
              printf("Edad incorrecta, introducela otra vez: ");
              scanf("%d", &edad);
        }  
         if (edad>mayor) mayor=edad;  
         if (edad<menor) menor=edad;  
         if (edad==mayor) contmay++;
         if (edad==menor) contmen++;
         suma+=edad;
    }
    media= suma/contador;
    printf("La edad del mayor es %d, la edad del menor es %d, y la edad media es %d\n",mayor,menor,media);
    system("pause");

}
Lo que tienes que cambiar es que no necesitas calcular la media, ni cuardar contadores, tan sólo el número mayor, el menor, los números que quiera introducir y otra para guardar los introducidos. En un bucle for de 0 al límite elegido haces algo similar a lo que hice yo, ahorrándote el proceso de verificar nada.

Por cierto, aprovecho este post para 2 cosas: para presentarme, y para que vosotros los expertos echéis un vistazo a ver qué cagadas (malos hábitos) tengo en mis códigos para ir haciendo mis programas más eficientes...  ;D

Bueno, tengo entendido que llamar al sistema es un desperdicio y una mala maña, que para eso simplemente es usar un getchar(); Pero el codigo esta muy bien hecho, solo seria hacer una mejor organizacion, yo lo hago así:

Original
Citar
if (edad>mayor) mayor=edad;  
         if (edad<menor) menor=edad;  
         if (edad==mayor) contmay++;
         if (edad==menor) contmen++;
         suma+=edad;
     .
     .
     .
     system("PAUSE");

Sugerencia
Citar
if (edad>mayor)
                      {mayor=edad; } 
         if (edad<menor)
                  {menor=edad;  }
         if (edad==mayor)
                  {contmay++;}
         if (edad==menor)
                  {contmen++;}
         suma+=edad;
     .
     .
     .
     getchar()



En línea


Quien se le mide a darles un calvaso???
Dale al hentai - Mi_BloG: http://daleradioblog.blogspot.com/
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.968


/^$/


Ver Perfil WWW
Re: que quiere decir este ejercicio?[c]
« Respuesta #16 en: 16 Diciembre 2010, 08:55 »

Bueno, tengo entendido que llamar al sistema es un desperdicio y una mala maña, que para eso simplemente es usar un getchar(); Pero el codigo esta muy bien hecho, solo seria hacer una mejor organizacion, yo lo hago así:

Original
Sugerencia


Tu indentación es incorrecta, por favor mejorala, te traerá muchos beneficios.


En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
Dr.Hacker++


Desconectado Desconectado

Mensajes: 1.368



Ver Perfil WWW
Re: que quiere decir este ejercicio?[c]
« Respuesta #17 en: 16 Diciembre 2010, 11:43 »

int n[5] ={1,5,3,7,9};
[5] supongo que eso es predefinir los numeros que salen. luego ya los numeros dan igual ingrese los que ingreses. supongo que sera esto.
En línea

Gana dinero fácil, Elhacker.net no permite nada ilegal
Entra en mi web -> http://helpmewithmypublic.comlu.com/
Necesito pagarme internet...


ghastlyX
Colaborador
***
Desconectado Desconectado

Mensajes: 1.894



Ver Perfil
Re: que quiere decir este ejercicio?[c]
« Respuesta #18 en: 16 Diciembre 2010, 13:08 »

Para lo de leer un número indefinido de números, una manera muy simple de hacerlo es ir leyendo hasta encontrar un EOF, es algo que se usa mucho en concursos de programación. Para hacerlo en C, puedes hacerlo de la siguiente manera:
Código
#include <stdio.h>
 
const int INF = 1000000000;
 
int main() {
   int maxim = -INF, minim = INF, a;
   while (scanf("%d", &a) != EOF) {
       if (maxim < a) maxim = a;
       if (minim > a) minim = a;
   }
   printf("%d %d\n", maxim, minim);
}

Y si lo pruebas por teclado, puedes enviar un EOF haciendo Control+D en Linux y Control+Z en WIndows.
En línea
Mini_Nauta


Desconectado Desconectado

Mensajes: 634



Ver Perfil WWW
Re: que quiere decir este ejercicio?[c]
« Respuesta #19 en: 17 Diciembre 2010, 17:22 »

muy interesante ghastlyX gracias...
En línea


Visita mi Blog de películas, artículos, ocio y mucho mas...
Películas, Animé y Series
"Si te pones a pensar en hacer algo, nunca lo vas a hacer. Hacer sin pensar, en este caso, es una decisión inteligente."
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Que quiere decir luz verde en flopy ??
Hardware
mit 8 1,799 Último mensaje 26 Enero 2004, 20:59
por 4rm4ndo
qué narices quiere decir h4x0r?
Dudas Generales
manutenfruits 7 2,373 Último mensaje 13 Octubre 2006, 04:50
por Tasc0
Que quiere decir este alerta del Zone Alarm pro
Seguridad
g-unit 3 753 Último mensaje 28 Diciembre 2007, 19:28
por Thor
[?] Que quiere decir ptr (Solucionado)
Bugs y Exploits
braulio-- 2 1,782 Último mensaje 11 Abril 2009, 16:27
por braulio--
¿Que quiere decir este error?
Programación C/C++
Bledniss 1 1,381 Último mensaje 13 Abril 2011, 16:20
por Tzhed\ Kyperf/
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines