Ir ao conteúdo

Posts recomendados

Postado

Então galera, eu estou fazendo uma prova e empaquei nessa questão, a última para terminar a prova, e bom, o resultado do código esta imprimindo Nan e -Inf, Inf, o que fazer e o que significa ? mandarei foto da questão e do código

#include<iostream>
using namespace std;

int main()
{
    float cosx = 1, x, y, f = 0, n, k = 0, inc = -1, aux = 1;

    cin>>x>>n; // insersão dos valores

    y = x; // y recebe valor de x para potencia mais a frente

    for(int i = 0; i < n; i++)
    {
        if(n == 1) // Caso base 
            cosx = 1;

        else if(i > 1) // Caso o nao entre no caso base
        {
            while(aux <= n) //
            {
                k = k + 2; // Incrementa o K com 2 para potencia e fatorial 

                for(int i = 1; i < k; i++) // Potencia
                {
                    y = y * x;
                }

                for(int i = 1; i < k; i++) // Fatorial
                {
                    f = f * (i + 1);
                }

                for(int i = 1; i < k; i++) // Alterna entre positivo e negativo
                {
                    inc = inc * -1;
                }

                cosx = cosx + (inc * (y / f)); // calculo final

                aux++; //contador para o While
            }
        }
    }


    cout<<cosx<<endl; //impressão



    return 0;
}

 

Anotação 2020-12-04 222641.png

  • Obrigado 1
Postado

@RockMagicRevived É C ou C++? 🤔

Você criou a postagem em C, e o código apresenta recursos do C++.

 

Alguns erros:

- O usuário não sabe o que é pra fazer no programa, você não imprimiu nenhuma instrução nem nada do tipo.

- O enunciado pede um x real, que poderia ser uma variável do tipo ponto flutuante, e um n natural, que poderia ser uma variável do tipo unsigned int, mas você declarou tudo como float.

- O elemento neutro da multiplicação é o 1, e sua variável f foi inicializada com 0, então qualquer coisa vezes f é 0, e você pode verificar isso imprimindo o valor de f após o loop:

image.png.93ac2c0b76be5e8dda111255f511c02b.png

- Você não está fazendo com que a variável y sempre tenha o mesmo valor de x antes do loop, então você acaba extrapolando um pouco multiplicando y por x sem reestabelecer seu valor:

image.png.9bb24730ecc8ea721f74c64a3fa350c7.png

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...