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 :
Pergunta
waknin
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?
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.