Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Lady_Shagrath en 4 Marzo 2023, 01:06 am



Título: Ayuda con un código
Publicado por: Lady_Shagrath en 4 Marzo 2023, 01:06 am
Estoy intentando crear un código en C para factorizar un número pero me marca varios errores y no se puede compilar, alguien me podría ayudar? No sé mucho de programación
Código
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int n, d, r;
  5.  
  6. printf("Ingrese el número:\n");
  7. scanf("%d", &n);
  8.  
  9. while(n>1)
  10. {
  11. d = 2;
  12. Divmod: r = n%d;
  13. if(r == 0){
  14. printf("d";);
  15. n = n/d;
  16. if(n == 1){
  17. break;
  18. }
  19. else{
  20. goto Divmod;
  21. }
  22. }
  23. else{
  24. d = d +1;
  25. goto Divmod
  26. }
  27. }
  28. printf("\nFactores de %d son: %d");
  29. scanf("%d", &d)
  30. }
  31.  


Título: Re: Ayuda con un código
Publicado por: MCKSys Argentina en 4 Marzo 2023, 01:16 am
Hola!

Muestra los errores que está teniendo.

También, especificar tu entorno de programación es necesario para poder saber cómo ayudarte.

Saludos!


Título: Re: Ayuda con un código
Publicado por: Locura_23 en 4 Marzo 2023, 02:29 am
Hola, entiendo que eres muy nuev@ en la programación, ya que el código tiene errores que son muy evidentes y fáciles de ver a simple vista.

error 1:
Código
  1. printf("d";);

error 2:
Código
  1. goto Divmod

No está recomendado utilizar goto, tampoco break. A no ser que sepas muy bien lo que haces.



Título: Re: Ayuda con un código
Publicado por: Lady_Shagrath en 4 Marzo 2023, 02:57 am
Hola!

Muestra los errores que está teniendo.

También, especificar tu entorno de programación es necesario para poder saber cómo ayudarte.

Saludos!


Estoy usando eclipse IDE for eclipse comitters

Los errores son:
19:50:15 **** Incremental Build of configuration Debug for project factorizacion ****
make all
Building file: ../factorizacion.c
Invoking: Cygwin C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"factorizacion.d" -MT"factorizacion.o" -o "factorizacion.o" "../factorizacion.c"
../factorizacion.c: In function 'main':
../factorizacion.c:31:16: warning: right-hand operand of comma expression has no effect [-Wunused-value]
   31 |         for(d=0,d<r;d++)
      |                ^
../factorizacion.c:31:24: error: expected ';' before ')' token
   31 |         for(d=0,d<r;d++)
      |                        ^
      |                        ;
make: *** [subdir.mk:20: factorizacion.o] Error 1
"make all" terminated with exit code 2. Build might be incomplete.

19:50:16 Build Failed. 2 errors, 1 warnings. (took 1s.734ms)


Título: Re: Ayuda con un código
Publicado por: Lady_Shagrath en 4 Marzo 2023, 02:59 am
Hola, entiendo que eres muy nuev@ en la programación, ya que el código tiene errores que son muy evidentes y fáciles de ver a simple vista.

error 1:
Código
  1. printf("d";);

error 2:
Código
  1. goto Divmod

No está recomendado utilizar goto, tampoco break. A no ser que sepas muy bien lo que haces.



Que me podría usar en lugar de break y goto? encontré eso en una página de internet


Título: Re: Ayuda con un código
Publicado por: Locura_23 en 4 Marzo 2023, 03:24 am
Lo que buscabas era calcular los factores de un número no? bueno lo puedes hacer así:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int num = 0;
  6.  
  7.    printf("Ingrese un numero --> ");
  8.    scanf("%d", &num);
  9.  
  10.    printf("Factores de %d:\n", num);
  11.  
  12.    for(int i = num; i >= 1; i--)
  13.    {
  14.        if( num %  i == 0 )
  15.        {
  16.            printf("%d\n",i);
  17.        }
  18.    }
  19.  
  20.    return 0;
  21. }

La lógica de esto es la siguiente, el usuario ingresa un numero y se guarda en la variable num,
luego, en un bucle for, se iguala una variable auxiliar i a el numero que ingreso el usuario.
Luego se utiliza el operador modulo (%) que devuelve el resto de una división entre dos números.
Si el resto es cero significa que ese número es divisor o factor del otro, entonces lo mostramos por pantalla.

Si no entiendes algo, avisame y te explico, saludos.


Título: Re: Ayuda con un código
Publicado por: Lady_Shagrath en 4 Marzo 2023, 03:43 am
Lo que buscabas era calcular los factores de un número no? bueno lo puedes hacer así:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int num = 0;
  6.  
  7.    printf("Ingrese un numero --> ");
  8.    scanf("%d", &num);
  9.  
  10.    printf("Factores de %d:\n", num);
  11.  
  12.    for(int i = num; i >= 1; i--)
  13.    {
  14.        if( num %  i == 0 )
  15.        {
  16.            printf("%d\n",i);
  17.        }
  18.    }
  19.  
  20.    return 0;
  21. }

La lógica de esto es la siguiente, el usuario ingresa un numero y se guarda en la variable num,
luego, en un bucle for, se iguala una variable auxiliar i a el numero que ingreso el usuario.
Luego se utiliza el operador modulo (%) que devuelve el resto de una división entre dos números.
Si el resto es cero significa que ese número es divisor o factor del otro, entonces lo mostramos por pantalla.

Si no entiendes algo, avisame y te explico, saludos.

Muchas gracias ya quedó más claro ;D