Test Foro de elhacker.net SMF 2.1

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:
#include <stdio.h>
 
          int main ()
{
   int N;
   printf("Ingresar cantidad de numeros: ");
   scanf("%i", &N);
   int Cant, Men, Band, Dig, I, Lis, Aux;
   Cant = 0;
   Band = 0;
             for ( I=1; I <=N; I++)
         {
           printf ("Ingresar lista de numeros: ");
           scanf("%i", &Lis);

            if ( Band == 0)
            {
              Men = Lis;
              Band = 1;
            }
            if ( Lis < Men)
            {
                Men = Lis;
            }    
         }
   Aux = Men;          
           while ( Men != 0)
     {
     Dig = Men % 10;
     Cant = Cant + 1;
     Men = Men / 10;
     }
   printf ("Mostar el menor numero de la lista: %i\n", Aux);
   printf ("Cantidad de digitos del menor: %i\n", Cant);
  return 0;                                        
}      


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
if ( Band == 0){
Men = Lis;
Band = 1;
}


por

if (I == 0){
Men = Lis;
}


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
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