elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programa en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa en C  (Leído 1,601 veces)
joseh94

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Programa en C
« en: 13 Octubre 2014, 13:05 pm »

Hola a todos!

soy estudiante de ingeniería y estoy resolviendo un ejercicio de programación en C, que trata de obtener todos los divisores de un número dado. El código que he hecho es el siguiente:

#include <stdio.h>
int main(void)
{
    int a,i;
    printf("Introduzca el numero: ");
    scanf("%d",&a);
    for(i=a;i==2;i--)
    {
        if(a%i==0)
        printf("%d",i);
    }

    return 0;
}


Pero cuando lo ejecuto  no me muestra nada en pantalla. Lo he echo así porque es lo básico que me están enseñando aún, y he probado también a ir guardando todos los divisores que obtenga en un vector y luego mostrar en pantalla el vector, pero nada. Alguien me podría ayudar?

Gracias!


En línea

DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Re: Programa en C
« Respuesta #1 en: 13 Octubre 2014, 13:16 pm »

Prueba así:

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3.  
  4. int main(void)
  5. {
  6.    int a,i;
  7.    printf("Introduzca el numero: ");
  8.    scanf("%d",&a);
  9.    for(i=a;i==2;i--)
  10.    {
  11.        if(a%i==0)
  12.        printf("%d",i);
  13.    }
  14.  
  15.    cin.get();
  16.    return 0;
  17. }


En línea

Esta página web no está disponible - Google Chrome
joseh94

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Programa en C
« Respuesta #2 en: 13 Octubre 2014, 13:20 pm »

Prueba así:

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3.  
  4. int main(void)
  5. {
  6.    int a,i;
  7.    printf("Introduzca el numero: ");
  8.    scanf("%d",&a);
  9.    for(i=a;i==2;i--)
  10.    {
  11.        if(a%i==0)
  12.        printf("%d",i);
  13.    }
  14.  
  15.    cin.get();
  16.    return 0;
  17. }

Es que el comando cin.get() no nos lo han enseñado, no hay otra forma más simple?
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Programa en C
« Respuesta #3 en: 13 Octubre 2014, 13:22 pm »

Hola a todos!

soy estudiante de ingeniería y estoy resolviendo un ejercicio de programación en C, que trata de obtener todos los divisores de un número dado. El código que he hecho es el siguiente:

#include <stdio.h>
i................................................
    for(i=a;i==2;i--)
    {
        if(a%i==0)
        printf("%d",i);
    }

 ......................................
}


Pero cuando lo ejecuto  no me muestra nada en pantalla. Lo he echo así porque es lo básico que me están enseñando aún, y he probado también a ir guardando todos los divisores que obtenga en un vector y luego mostrar en pantalla el vector, pero nada. Alguien me podría ayudar?

Gracias!


El error lo tienes en el for ">=" en lugar de "==". Y deja algún espacio en el printf para que no salgan los divisores pegados.

Por cierto, puedes prescindir del uso de las llaves cuando sólo hay una línea:

Código
  1. for( i = a ; i >= 2 ; i-- )
  2.    if ( a % i ==0 )
  3.      printf("%d  ",i) ;

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


En línea

DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Re: Programa en C
« Respuesta #4 en: 13 Octubre 2014, 13:23 pm »

cin.get(); es para que no se cierre el programa (la ventana).

Lo que realmente ha echo que se muestre tu programa es cuándo has añadido la librería: <iostream>

Puedes usar la librería <stdlib.h> y sustituir cin.get(); por system("PAUSE");
En línea

Esta página web no está disponible - Google Chrome
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Programa en C
« Respuesta #5 en: 13 Octubre 2014, 13:31 pm »

Insisto, con perdón, en que el error que hace que no muestre ningún resultado es:

Citar
for( i = a ; i == 2 ; i-- )

que debería ser:

Citar
for( i = a ; i >= 2 ; i-- )

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


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines