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!
Prueba así:
#include <iostream>
#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);
}
cin.get();
return 0;
}
Cita de: YuseTist en 13 Octubre 2014, 13:16 PM
Prueba así:
#include <iostream>
#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);
}
cin.get();
return 0;
}
Es que el comando cin.get() no nos lo han enseñado, no hay otra forma más simple?
Cita de: joseh94 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>
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:
for( i = a ; i >= 2 ; i-- )
if ( a % i ==0 )
printf("%d ",i) ;
¡¡¡¡ Saluditos! ..... !!!!
(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)
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");
Insisto, con perdón, en que el error que hace que no muestre ningún resultado es:
Citarfor( i = a ; i == 2 ; i-- )
que debería ser:
Citarfor( i = a ; i >= 2 ; i-- )
¡¡¡¡ Saluditos! ..... !!!!
(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)