forked from Jonagotz/GEX055
-
Notifications
You must be signed in to change notification settings - Fork 0
/
probinha.c
85 lines (64 loc) · 1.9 KB
/
probinha.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <stdio.h>
#include <math.h>
int comb(int n, int x, int ene, int xis){
//começo da conta de Combinação
//C n,x = ( n! )/ ( (n - x) * (x!) )
int nx, enexis, fatN, fatX, fatNX, com;
nx = ene - xis;
enexis = nx;
//fatorial de x
for(fatX = 1; x > 1; x--)
fatX = fatX * x;
//fatorial de n
for(fatN = 1; n > 1; n--)
fatN = fatN * n;
//fatorial de n - x
for(fatNX = 1; nx > 1; nx--)
fatNX = fatNX * nx;
//conta
com = fatN / (fatNX * fatX);
printf("\nC %d, %d = ( %d! )\n", ene, xis, ene);
printf(" ---------\n");
printf(" ( %d )! %d!\n", enexis, xis);
printf(" = %d\n", com);
return com;
}
double pex(double p, int xis){
double expo;
expo = pow(p, xis);
return expo;
}
double qnx(double p, int xis, int ene){
int expNX;
double q, res;
q = 1 - p;
expNX = ene - xis;
res = pow(q, expNX);
return res;
}
int main(){
int ene, xis, n, x, combinacao;
double p, PEX, QNX, q, resposta, final;
//pedindo os valores de n, p e x
printf("Digite o numero de observacoes: \n");
scanf("%d", &ene);
printf("Digite o numero especificado de sucesso: \n");
scanf("%d", &xis);
printf("Digite a probabilidade de sucesso: \n");
scanf("%lf", &p);
n = ene;
x = xis;
q = 1 - p;
//chamando função combinação
combinacao = comb(n, x, ene, xis);
//chamando função de calcular o P elevado a X
PEX = pex(p, xis);
//chamando função de calcular o q elavado a n - x
QNX = qnx(p, xis, ene);
//resultado final
resposta = (combinacao) * (PEX) * (QNX);
final = resposta*100;
printf("\nP(%d) = %d * ( %.2lf ^ %d ) * ( %.2lf ^ %d - %d ) = %.2lf\n", x, combinacao, p, xis, q, ene, xis, resposta);
printf("Resposta em porcentagem: %.2lf%%\n", final);
return 0;
}