• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

tuasite

Mostrar divisores e factorial

9 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

As funções factorial e mostradivisores parece-me que deviam estar no mesmo bloco. Caso contrário só uma deles é executada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

[...] mas queria saber como faço para ele terminar o codigo? Obrigado

Não percebi a dúvida.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas amigo gostava de saber como posso terminar o ciclo do codigo. Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora