Ajuda: for em C [RESOLVIDO]

1. Ajuda: for em C [RESOLVIDO]

Bell Coutinho
BellCoutinho

(usa Arch Linux)

Enviado em 16/04/2018 - 14:21h

Pessoal estou fazendo um exercício em C, mas, a ultima questão não está funcionando. A questão é a seguinte:
O fatorial de um inteiro não-negativo n é escrito como n! (‘pronuncia-se n
fatorial’) e é definido como segue:
n! = n.(n-1).(n-2). ... .1.(para valores de n maiores ou iguais a 1) e n! = 1 (para n=0). Por
exemplo, 5!=5.4.3.2.1, o que dá 120.
a) Escreva um aplicativo que leia um inteiro não-negativo, calcule e imprima
seu fatorial.
b) Escreva um aplicativo que estime o valor da constante matemático e
utilizando a fórmula
e = 1 + 1 / 1! + 1 / 2! + 1 / 3! + ....
c) Escreva um aplicativo que computa o valor de e ^ x utilizando a fórmula:
e ^ x = 1 + x / 1! + x² / 2! + x³ / 3! + ...

OBS: Espero que dê para entender a fórmula.

Eu conseguir fazer a letra A e B, a C é igual a B mas eu não tou conseguindo fazer ela, estou errando alguma coisa. Meu código:

/* 20) O fatorial de um inteiro não-negativo n é escrito como n! (‘pronuncia-se n
fatorial’) e é definido como segue:
n! = n.(n-1).(n-2). ... .1.(para valores de n maiores ou iguais a 1) e n! = 1 (para n=0). Por
exemplo, 5!=5.4.3.2.1, o que dá 120.
a) Escreva um aplicativo que leia um inteiro não-negativo, calcule e imprima
seu fatorial.
b) Escreva um aplicativo que estime o valor da constante matemático e
utilizando a fórmula
e = 1 +
1 1 1
+ + + ...
1 ! 2 ! 3 !
c) Escreva um aplicativo que computa o valor de e x utilizando a fórmula
e x = 1 +
x x 2 x 3
+
+
+ ...
1 ! 2 ! 3 ! */

#include <stdio.h>
#include <stdbool.h>
#include <math.h>

int main(void) {
int fat = 1, fat2 = 1, fat3 = 1, n, e, aux, aux2, x;
float soma = 1, soma2 = 1;

// Letra A
while (true) {
printf("Informe um interio não-negativo: ");
scanf("%d", &n);

if (n > -1) {
break;
} else {
printf("ERROR, digite um número inteiro não-negativo\n");
}

for (int cont = n; cont > 1; cont--) {
fat *= cont;
}

printf("%d! = %d\n", n, fat);

// Letra B
printf("Informe o valor e: ");
scanf("%d", &e);
aux = e;
for (int cont = 1; cont <= e; cont++) {
for (int i = aux; i >= 1; i--) {
fat2 *= i;
}

soma += (float) 1 / fat2;

fat2 = 1;
aux--;
}

printf("Estimativa de E: %f\n", soma);

// Letra C

printf("Informe o valor de e*: ");
scanf("%d", &x);
aux2 = x;

for (int cont = 1; cont <= x; cont++) {
for (int j = aux2; j >= 1; j--) {
fat3 *= j;
}

soma2 += (float) pow(x, cont) / fat3;

fat3 = 1;
aux2--;

}

printf("Estimativa de E*: %f\n", soma2);

return 0;
}


O que eu estou errando?

Desde já obrigado.


  


2. MELHOR RESPOSTA

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 16/04/2018 - 17:50h



3. Re: Ajuda: for em C [RESOLVIDO]

Bell Coutinho
BellCoutinho

(usa Arch Linux)

Enviado em 16/04/2018 - 18:47h

SamL escreveu:

Dei uma olhada aqui e acho que consertei onde tava errado, veja:
// Letra B corrigida
printf("Informe o valor e: ");
scanf("%d", &e);
//aux = e; não precisou dessa variavel
for (int cont = 1; cont <= e; cont++) {
fat2 = 1;
for (int i = cont; i >= 1; i--) {
fat2 *= i;
}
...


Parte da C:

printf("Informe o valor de e*: ");
scanf("%d", &x);
//aux2 = x; aux2 não precisa

for (int cont = 1; cont <= x; cont++) {
fat3 = 1;
for (int j = cont; j >= 1; j--) {
fat3 *= j;
}
...

____________________________________________
https://nerdki.blogspot.com/ acessa aí vai lá, é grátis!


Vlw, a variável auxiliar não me auxiliou kkkkkk






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts