tuasite Posted February 4, 2008 at 11:02 PM Report #164511 Posted February 4, 2008 at 11:02 PM Boas pessoal, agradecia se possivel a vossa ajuda estou a fazer este codigo para calcular o divisor e o factorial de um numero recorrendo à sub programação mas nao me sai do ciclo esta me sempre a pedir para digitar um numero, o codigo é o seguinte: int factorial(int n) { int fac,i; fac=1; for (i=2;i<=n;i++); fac=fac*i; return fac; } int mostrardivisores(int n) { int i; for (i=1;i<=n/2;i++); if (n%i==0) printf("%d",i); printf("%d",n); } int main() { int num,f; printf("Digite um numero:\n"); scanf("%d",&num); while (num>=0) { if (num<=0) { f=factorial(num); printf("Factorial de %d é %d",num,f); } else mostrardivisores(num); printf("Digite um numero:\n"); scanf("%d",&num); } return 0; } Obrigado
Rui Carlos Posted February 4, 2008 at 11:21 PM Report #164512 Posted February 4, 2008 at 11:21 PM Na função mostrardivisores tens um ';' a mais no fim do for. E não percebi a lógica disto: while (num>=0) { if (num<=0) { f=factorial(num); Só queres calcular o factorial de 0? EIDT: Na função factorial tens o mesmo problema do ';'. Rui Carlos Gonçalves
tuasite Posted February 4, 2008 at 11:29 PM Author Report #164514 Posted February 4, 2008 at 11:29 PM Boas amigo ja corrigi, eu quero mostrar o fatorial dos numero do 0 não ja me mostra os divisores com a tua correcção mas ainda nao me mostra o fatorial, Obrigado.
Rui Carlos Posted February 4, 2008 at 11:34 PM Report #164516 Posted February 4, 2008 at 11:34 PM As funções factorial e mostradivisores parece-me que deviam estar no mesmo bloco. Caso contrário só uma deles é executada. Rui Carlos Gonçalves
tuasite Posted February 4, 2008 at 11:38 PM Author Report #164517 Posted February 4, 2008 at 11:38 PM Boas amigo porque tinha uma parte mal no codigo, eu queria que se o numero digitado fosse menos que 10 que ele calculasse o factorial de fosse maior que dez que mostrasse os divisores, ja alterei o codigo e ja faz isso mas queria saber como faço para ele terminar o codigo? Obrigado
Rui Carlos Posted February 4, 2008 at 11:45 PM Report #164518 Posted February 4, 2008 at 11:45 PM [...] mas queria saber como faço para ele terminar o codigo? Obrigado Não percebi a dúvida. Rui Carlos Gonçalves
tuasite Posted February 4, 2008 at 11:47 PM Author Report #164519 Posted February 4, 2008 at 11:47 PM Boas amigo gostava de saber como posso terminar o ciclo do codigo. Obrigado
Rui Carlos Posted February 4, 2008 at 11:57 PM Report #164521 Posted February 4, 2008 at 11:57 PM Neste momento, basta introduzir um valor negativo. Rui Carlos Gonçalves
tuasite Posted February 5, 2008 at 10:57 PM Author Report #164750 Posted February 5, 2008 at 10:57 PM Obrigadissimo pela tua ajuda.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now