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 :
Question
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:
2: O meu não retorna certo. Minha lógica esta errada. Vejam o meu: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 to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.