oi. Já pesquisei alguns codigos já prontos de fatorial em C. Mas não se adequam ao que eu quero (que é fazer em menor numero de linhas e se adequar a qualquer numero). Vejam os que achei: #include <stdio.h>
main()
{
float fat;
int num,opt;
opt=1;
while(opt==1) {
printf("Digite um n£mero para obter o fatorial:\n");
scanf("%d",&num);
if(num==1 || num==0) {
fat=1;
printf("O fatorial ‚: %.0f\n\n",fat);
}
else if(num<=30 && num>1) {
fat=num;
while(num>1) {
fat=fat*(num-1);
num=num-1; }
printf("O fatorial ‚: %.0f\n\n",fat);
}
else
printf("Este programa s¢ aceita n£meros entre 0 e 30.\n\n");
printf("Tecle 1 para continuar ou 0 para sair:");
scanf("%d",&opt);
printf("\n\n");
}
}
2:
#include <stdio.h>
main()
{
float fat;
int num,opt;
opt=1;
while(opt==1) {
printf("Digite um n£mero para obter o fatorial:\n");
scanf("%d",&num);
if(num==1 || num==0) {
fat=1;
printf("O fatorial ‚: %.0f\n\n",fat);
}
else if(num<=30 && num>1) {
fat=num;
while(num>1) {
fat=fat*(num-1);
num=num-1; }
printf("O fatorial ‚: %.0f\n\n",fat);
}
else
printf("Este programa s¢ aceita n£meros entre 0 e 30.\n\n");
printf("Tecle 1 para continuar ou 0 para sair:");
scanf("%d",&opt);
printf("\n\n");
}
}
O meu não retorna certo. Minha lógica esta errada. Vejam o meu:
#include <stdio.h>
#include <stdlib.h>
int main() {
float a, b,c, i;
printf("Insira um numero para calcular seu fatorial:\n");
scanf("%f", &a);
c=0;
for ( i=1; i<=a; i++){
b=a*i;
c=c+b;
}
printf("\n %f",c);
printf("\n");
system("PAUSE");
} Eu sei que está errado mas não sei fazer. A minha ideia era fazer com que o numero multiplica-se cconsecutivamente até chegar a 1. Ex: 4!= 4.3.2.1 = 24 Eu estava tentando usar o for para isso mas em vez de multiplicar um a um o b=a*i esta somandao. Assim olha : 4*1=4 4*2=8 ......=12 ......=16 ---> 4 + 8 + 12 + 16 = 40 alguém me ajuda?