elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


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


Desconectado Desconectado

Mensajes: 854


Ver Perfil WWW
Re: que quiere decir este ejercicio?[c]
« Respuesta #10 en: 15 Diciembre 2010, 15:52 pm »

interesante, no me puse a pensar en hacer un bucle.. solo pense "como diablos hago para hacer que el codigo cree variables"...en fin... gracias..


En línea

ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Re: que quiere decir este ejercicio?[c]
« Respuesta #11 en: 15 Diciembre 2010, 15:56 pm »

A mi me pasó lo mismo, lo primero que pensé fue... Necesitamos N variables y por eso pensé en el array. Yo creo que el ejercicio está redactado con "perrería" para tratar de confundir un poquito, jeje.


En línea

autlos

Desconectado Desconectado

Mensajes: 3


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

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
« Última modificación: 15 Diciembre 2010, 16:37 pm por autlos » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: que quiere decir este ejercicio?[c]
« Respuesta #13 en: 15 Diciembre 2010, 17:07 pm »

A mi me pasó lo mismo, lo primero que pensé fue... Necesitamos N variables y por eso pensé en el array. Yo creo que el ejercicio está redactado con "perrería" para tratar de confundir un poquito, jeje.

Desde un principio se puede deducir que no se necesita un arreglo, solo dos variables y un ciclo.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
flacc


Desconectado Desconectado

Mensajes: 854


Ver Perfil WWW
Re: que quiere decir este ejercicio?[c]
« Respuesta #14 en: 15 Diciembre 2010, 18:46 pm »

amm, aunque me cuesta un poco entender el código, ya que no tengo mucha experiencia leyendo códigos ajenos(confío en que esa habilidad mejorará con el tiempo y la practica)... en fin.. tengo una idea aunque por baja que sea es algo... un poco diferente pero la idea no es copy paste al %70... asi que en fin... y sobre los malos hábitos, el system("pause");  supongo que lo hace anti estándar, podrás usar en su lugar getchar(); ... en fin.. solo soy un novato... saludoss
En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



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

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


leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


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

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. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


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

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

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
ghastlyX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.900



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

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
  1. #include <stdio.h>
  2.  
  3. const int INF = 1000000000;
  4.  
  5. int main() {
  6.    int maxim = -INF, minim = INF, a;
  7.    while (scanf("%d", &a) != EOF) {
  8.        if (maxim < a) maxim = a;
  9.        if (minim > a) minim = a;
  10.    }
  11.    printf("%d %d\n", maxim, minim);
  12. }

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

flacc


Desconectado Desconectado

Mensajes: 854


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

muy interesante ghastlyX gracias...
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Que me quiere decir el Nero ayuda URGENTE
Software
Bender-Deicide 9 7,359 Último mensaje 19 Enero 2008, 01:09 am
por Mordor
72 dpi que quiere decir?
Diseño Gráfico
Attaque77 1 14,537 Último mensaje 12 Febrero 2011, 15:39 pm
por [D4N93R]
¿Que quiere decir este error?
Programación C/C++
Bledniss 1 3,827 Último mensaje 13 Abril 2011, 16:20 pm
por Slava_TZD
Que quiere decir esta expresion de Java?
Java
juancaa 1 2,077 Último mensaje 14 Junio 2012, 11:40 am
por ollo
No entiendo que quiere decir este error de compilación!!!!!
Programación C/C++
pablombf 1 1,901 Último mensaje 4 Enero 2018, 14:16 pm
por Becerra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines