Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Ale_21 en 29 Octubre 2014, 16:58 pm



Título: Hacer
Publicado por: Ale_21 en 29 Octubre 2014, 16:58 pm


Podrían ayudarme, por favor. Gracias


Título: Re: Hacer un programa en C que me de la cantidad de divisores
Publicado por: engel lex en 29 Octubre 2014, 17:05 pm
hola! te explico algunas cosillas antes que nada

-usa las etiquetas GeSHi cuando publiques codigo, lo hará más legible
-procura colocar el codigo bien identado (bien espaciado)
Código
  1. #include<stdio.h>
  2. int main (){
  3.  int cont=0;
  4.  int N,i;
  5.  scanf("%d",&N);
  6.  {
  7.    for(int i= 1; i<=N; i ++){
  8.      if((N%div) == 0){
  9.        cont ++;
  10.      }
  11.    }
  12.  }
  13. }

-publica cual es el error que te da, no siempre podemos adivinarlos o correrlos...

sabido esto ahora vamos... en la linea 6 para que es esa llave?
no debes declarar variables dentro de los parametros del for (no todos los compiladores lo soportan y es contra recomendado)

di cual error te da


Título: Re: Hacer un programa en C que me de la cantidad de divisores
Publicado por: eferion en 29 Octubre 2014, 17:05 pm
Bienvenida al foro.

Lo primero que te recomiendo es editar tu mensaje y decorar el código con la etiqueta GeSHi correspondiente a C o C++, según el lenguaje de programación del que se trate. Es obligatorio según las normas del foro, pero sin tener en cuenta ese detallito sin importancia, si es cierto que facilita bastante la lectura del código.

Código
  1. #include<stdio.h>
  2.  
  3. int main ()
  4. {
  5.  int cont=0;
  6.  int N,i;
  7.  scanf("%d",&N);
  8.  
  9.  { // <<< 1
  10.  for(int i= 1; i<=N; i ++) // <<< 3
  11.  {
  12.    if((N%div) == 0)
  13.    {
  14.      cont ++; // <<< 4
  15.    }
  16.  }
  17.  } // <<< 2
  18. }

El código tiene varios comentarios, significan lo siguiente:

* 1 y 2: Estas llaves no son necesarias. No aportan absolutamente nada y son redundantes. Puedes eliminarlas sin ningún miedo.

* 3: Los "for" en C no permiten declarar variables. "int i" no está permitido dentro de un "for". Además, ya has declarado una variable "i" 4 líneas antes. El "for" debería quedar tal que:

Código
  1. for( i= 1; i<=N; i++ )

* 4: Esta variable no la estás usando absolutamente para nada. Después del bucle deberías imprimir su valor para saber cuántos divisores tiene el número.

Un saludo



Edito: Se me adelantó engel lex


Título: Re: Hacer un programa en C que me de la cantidad de divisores
Publicado por: rir3760 en 29 Octubre 2014, 17:14 pm
Solo agregar que la condición de la sentencia de selección if esta mal ya que divide por "div" (una variable no declarada):
Código
  1. if ((N % div) == 0){
Para solucionarlo se debe dividir por el contador del bucle "i":
Código
  1. if ((N % i) == 0){

Un saludo


Título: Re: Hacer un programa en C que me de la cantidad de divisores
Publicado por: leosansan en 29 Octubre 2014, 17:19 pm
.....y no te olvides del return de la función main. Tampoco vendrían mal algunos printf o puts para saber que hace al comienzo el programa y cuales son los resultados. Las llaves sólo si son necesarias. También es importante el indentar el código, algo como  :o:

Código
  1. #include<stdio.h>
  2.  
  3. int main ( void ) {
  4.  int N , i , cont = 0 ;
  5.  puts ( "Introduce un numero:" ) ;
  6.  scanf( "%d" , &N ) ;
  7.  puts ( "Son divisores:" ) ;
  8.  for( i = 1 ; i <=N ; i ++ )
  9.    if( ( N % i ) == 0 )
  10.      cont ++ , printf ( "%d   " , i ) ;
  11.  printf ( "\nTotal de divisores: %d\n" , cont ) ;    
  12.  return 0 ;
  13. }

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)