O código está em DEV C++ e pode ser utilizado livremente.
Trata-se de C++ puro!
#include
int Fatoracao(int i)
{
int x;
int y;
int fatorar;
printf ("Estamos na funcao Fatoracao().\n");
x = i;
y = 1;
fatorar = 1;
if (x == 1 )// se o número for 1, o fatorial é 1
{
fatorar = 1;
goto saida;
}
fatorar =0;
while (y < x)
{
if (y==1) // faz a primeira multiplicação
{
fatorar = fatorar + (x * (x-y));
}
++y;
if (y > 1) // faz as multiplicações subsquentes
{
if ((x-y) > 0 )
{
fatorar = fatorar * (x-y);
}
}
if (y == x) // se atingiu o número, deve finalizar
{
break;
}
} // fim do while
saida:
return (fatorar);
} // Fim de Soma(int, int)
main ()
{
int valor;
int valor2;
int valorencerra;
int z;
printf("Digite o número a fatorar: ");
scanf("%d",&valor);
printf("\n");
if (valor < 0)
{
printf("Valor menor que zero!! %d", valor, "\n");
printf("\n");
printf("Informe um valor qualquer para encerrar...\n");
scanf("%d",&valorencerra);
}
else
{
z = Fatoracao(valor);
printf("\n");
printf("Valor da Fatoracao: %d", z, "\n");
printf("\n");
printf("Digite um valor qualquer para encerrar...\n");
scanf("%d",&valorencerra);
}
}
Considerações: O aplicativo executa somente uma vez e você deve informar um valor para encerrar na sequência. Para refinar o algoritimo, sugiro que seja acrescentado um loop while que execute até que o usuário informe o número 0 para encerrar o aplicativo.
Sorte a todos!!
2 comentários:
não funciona seu código
Olá, Lulu!
Realmente o código-fonte está errado e como disse no post o mesmo precisa ser refinado
Postar um comentário