Ayuda con codigo C

Iniciado por dylan-96, 26 Marzo 2015, 16:04 PM

0 Miembros y 1 Visitante están viendo este tema.

dylan-96

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

ivancea96

Si lo compilas y funciona, estará bien.

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

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

dylan-96

Gracias a los que respondieron, voy a tratar de mejorar mi código.
engel lex por la linea 29 sobra?

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

dylan-96

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.

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

dylan-96

Ah ya esta jaja, Gracias por la ayuda