Hacer

Iniciado por Ale_21, 29 Octubre 2014, 16:58 PM

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

Ale_21



Podrían ayudarme, por favor. Gracias

engel lex

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)
#include<stdio.h>
int main (){
  int cont=0;
  int N,i;
  scanf("%d",&N);
  {
    for(int i= 1; i<=N; i ++){
      if((N%div) == 0){
        cont ++;
      }
    }
  }
}


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

eferion

#2
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.


#include<stdio.h>

int main ()
{
 int cont=0;
 int N,i;
 scanf("%d",&N);

 { // <<< 1
 for(int i= 1; i<=N; i ++) // <<< 3
 {
   if((N%div) == 0)
   {
     cont ++; // <<< 4
   }
 }
 } // <<< 2
}


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:

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

rir3760

Solo agregar que la condición de la sentencia de selección if esta mal ya que divide por "div" (una variable no declarada):
if ((N % div) == 0){
Para solucionarlo se debe dividir por el contador del bucle "i":
if ((N % i) == 0){

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

leosansan

#4
.....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 (cpp) [Seleccionar]
#include<stdio.h>

int main ( void ) {
 int N , i , cont = 0 ;
 puts ( "Introduce un numero:" ) ;
 scanf( "%d" , &N ) ;
 puts ( "Son divisores:" ) ;
 for( i = 1 ; i <=N ; i ++ )
   if( ( N % i ) == 0 )
     cont ++ , printf ( "%d   " , i ) ;
 printf ( "\nTotal de divisores: %d\n" , cont ) ;    
 return 0 ;
}


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