Ir para conteúdo
Fórum Script Brasil
  • 0

Efetuando a expressão


SAOD

Pergunta

Boa tarde amigos,

Alguém poderia me ajudar a resolver este problema:

O codigo tem que ler um valor n inteiro e positivo e depois calcular a seguinte expressão:

S = 1 + 1/2 + 1/3 + 1/4 + ... + 1/n

Se n for menor que zero da uma mensagem de erro.

O valor final deve estar em 6 casas decimais.

O que eu consegui fazer: http://pastebin.com/pBL5PfZG

Estou em desde meio dia tentando, já não sei mais o que testar.

Grato

!

Editado por SAOD
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Fiz um código aqui, comecei a estudar c a pouco tempo

#include <stdio.h>

int main()
{
int numeroqualquer, i = 0;
float s = 0;

puts("Digite um valor inteiro positivo:");
scanf("%d", &numeroqualquer);

while(numeroqualquer < 1)
{
    puts("\nErro na entrada do valor\n\nEntre um valor inteiro positivo");
    fflush(stdin);
    scanf("%d", &numeroqualquer);
}

while(i++ < numeroqualquer) s += 1.0 / i;


printf ("\n----------------------------------------------------");
printf("\n------------------- RESULTADO ----------------------\n");

printf("\nResultado Final: %.6f", s);

printf ("\n\n----------------------------------------------------");

return 0;
}
Link para o comentário
Compartilhar em outros sites

  • 0

Olá, amigos.

ArteEN, cuidado com o seu loop: numeroqualquer < 1 só impede que o usuário dê valores decimais menores do que 1 para n. Se ele digitar 2.5, por exemplo, o seu programa deixa passar.

Fiz da seguinte maneira:

/*
Coder: Pedro Milreu Cunha
Tester: Pedro Milreu Cunha
Date: 04/21/2015
*/

#include <iostream>
#include <limits>
#include <iomanip>
#include <locale>

using namespace std;

float n = 0;
float Valor_da_Soma = 0;

void Perguntar_valor_da_variavel(float);
void Calcular_Soma(float);
void Mostrar_soma(float);

void Perguntar_valor_da_variavel(float n)
{
    int parte_inteira_n = 0;
    cout << "\n\nDigite o valor de n (n deve ser positivo e inteiro)." << endl;
    cin >> n;
    cin.sync();
    parte_inteira_n = n;
    if ( (!cin) || (n < 0) || ((n - parte_inteira_n) != 0))
    {
        cout << "\nValor inválido." << endl;
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
        Perguntar_valor_da_variavel(n);
    }
    else
    {
      cin.sync();
      Calcular_Soma(n);
    }
}

void Calcular_Soma(float n)
{
    float i = 0;
    float soma_parcial = 0;
    for (i = 1; i <= n; i++)
    {
        soma_parcial = (1/i);
        Valor_da_Soma += soma_parcial;
    }
    Mostrar_soma(Valor_da_Soma);
}

void Mostrar_soma(float Valor_da_Soma)
{
    cout << fixed << setprecision(6) << endl;
    cout << "O valor da soma é " <<  Valor_da_Soma << endl;
}

int main()
{
    setlocale(LC_ALL, "Portuguese");
    Perguntar_valor_da_variavel(n);
    cin.get();
    return 0;
}

Abraços,
Pedro

Editado por PedroCunha
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...