Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: dylan-96 en 26 Marzo 2015, 16:04 pm



Título: Ayuda con codigo C
Publicado por: dylan-96 en 26 Marzo 2015, 16:04 pm
Hola compañeros, les quiero preguntar si esta bien mi código escrito en C.

Problema: Dado una lista de N números enteros, indicar la cantidad de dígitos del menor y mostrar el mismo.
Código:
 
Código
  1. #include <stdio.h>
  2.  
  3.           int main ()
  4. {
  5.    int N;
  6.    printf("Ingresar cantidad de numeros: ");
  7.    scanf("%i", &N);
  8.    int Cant, Men, Band, Dig, I, Lis, Aux;
  9.    Cant = 0;
  10.    Band = 0;
  11.              for ( I=1; I <=N; I++)
  12.          {
  13.            printf ("Ingresar lista de numeros: ");
  14.            scanf("%i", &Lis);
  15.  
  16.             if ( Band == 0)
  17.             {
  18.               Men = Lis;
  19.               Band = 1;
  20.             }
  21.             if ( Lis < Men)
  22.             {
  23.                 Men = Lis;
  24.             }    
  25.          }
  26.    Aux = Men;          
  27.            while ( Men != 0)
  28.      {
  29.      Dig = Men % 10;
  30.      Cant = Cant + 1;
  31.      Men = Men / 10;
  32.      }
  33.    printf ("Mostar el menor numero de la lista: %i\n", Aux);
  34.    printf ("Cantidad de digitos del menor: %i\n", Cant);
  35.   return 0;                                        
  36. }      

Mod: modificada la etiqueta a GeSHi para que sea más legible el código


Título: Re: Duda
Publicado por: ivancea96 en 26 Marzo 2015, 16:13 pm
Si lo compilas y funciona, estará bien.

Si hablas de identación, ya no lo veo tan claro.


Título: Re: Duda
Publicado por: engel lex en 26 Marzo 2015, 16:24 pm
Primero que nada, reglas del foro, el tutlo debe ser descriptivo, usa el botón modificar y corrigelo

recomiendo usas variables más descriptivas para mejorar la lectura ;) me costo leer tu código, te recomiendo que las palabra con mayúsculas no las uses en variables, sino las reserves para los structs y las clases

en el for se tiende a hacer desde 0 y sería un simple <N (por la forma en que funcionan los array)

puedes cambiar el
Código
  1. if ( Band == 0){
  2. Men = Lis;
  3. Band = 1;
  4. }

por

Código
  1. if (I == 0){
  2. Men = Lis;
  3. }

no necesitas una variable externa si I solo va a ser 0 una vez

la linea 29 junto con la variable Dig sobran

son solo sugerencias para mejorar tu código y hacerlo más visible


Título: Re: Duda
Publicado por: dylan-96 en 26 Marzo 2015, 17:00 pm
Gracias a los que respondieron, voy a tratar de mejorar mi código.
engel lex por la linea 29 sobra?


Título: Re: Duda
Publicado por: engel lex en 26 Marzo 2015, 17:07 pm
Segundo aviso, modifica el título del tema por uno descriptivo, presiona el boton modificar del primer post y coloca un título descriptivo como indican las reglas del foro

sobra porque literalmente no haces más nada con esa variable, le colocas un valor pero nunca la usas


Título: Re: Ayuda con codigo C
Publicado por: dylan-96 en 26 Marzo 2015, 17:14 pm
Lo que hago con la variable Dig es sacar el primero digito y luego contarlo con la variable Cant y asi hasta que Men sea 0.


Título: Re: Ayuda con codigo C
Publicado por: engel lex en 26 Marzo 2015, 17:21 pm
entiendo tu intención con Dig... pero solo lo usas una vez para
Código
  1. Dig = Men % 10;

ese valor se le asigna a Dig y fin, no se hace nada... sin él en el código, no cambia nada


Título: Re: Ayuda con codigo C
Publicado por: dylan-96 en 26 Marzo 2015, 17:24 pm
Ah ya esta jaja, Gracias por la ayuda