Ir ao conteúdo
  • Cadastre-se

Não consigo fazer 1 questão de linguagem c++


skyline.soares

Posts recomendados

Ola pessoal, favor me ajude, não consigo fazer embaixo:

 

 

//Escreva uma função que recebe por parâmetro um valor inteiro positivo N e retorna o valor de S.

 

#include<iostream>

using namespace std;

 

int positivo(int s, int n);

int main()

{

int x;

cout <<"Digite valor de x " << endl;

cin >> x;

 

int val_positivo = positivo(x);

 

cout << "Test: " << val_positivo << endl;

 

system("pause");

return(0);

 

}

int positivo(int s, int n)

{

return s = (1 + ((1/2) + (1/3)) + ((1/4)) + ((1/5) + (1/n)));

}

Link para o comentário
Compartilhar em outros sites

A função recebe UM valor, N.

Mas a sua função tá recebendo dois valores, N e S.

 

Apesar de você não ter deixado claro na questão, é bem provável que os termos da função positivo vão de 1 até N, isso significa que você precisa cobrir todos os números inteiros no intervalo de 1 até N. Se N for igual a 100, então a função usa os números 1, 2, 3, 4, 5,... 95, 96, 97, 98, 99, 100. Mas a sua função tá usando apenas os números de 1 até 5.

 

Pra pegar os números de 1 até N você precisa de um laço de repetição. Assim:

int positivo(int n) {    int s = 0;    for (int x=1; x <= n; x++)        s = s + 1/n;    return n;}
Link para o comentário
Compartilhar em outros sites

Olá Dontpanic, obrigado pela ajuda, desculpe esqueci de colocar um texto na formula "S = 1+ 1/2 + 1/3 + 1/4 + 1/5 + 1/N."

 

 


1 - Escreva uma função que recebe por parâmetro um valor inteiro positivo N e retorna o valor de S.

 S = 1+ 1/2 + 1/3 + 1/4 + 1/5 + 1/N.

 

 

Digitei o valor de y: 5  e recebi numero: 5 é mesma coisa. Não muda o número?

 

--------------------------------------------------------------------------------------------------------------------------------


 

//Escreva uma função que recebe por parâmetro um valor inteiro positivo N e retorna o valor de S.

//S = 1+ 1/2 + 1/3 + 1/4 + 1/5 + 1/N.

 

#include<iostream>

using namespace std;a

 

int positivo(int n);

int main()

{

int y;

cout <<"Digite valor de y: " << endl;

cin >> y;

 

cout << "Test: " << positivo(y) << endl;

 

system("pause");

return(0);

 

}

int positivo(int n) {

    int s = 0;

    for (int x=1; x <= n; x++)

        s = 1+ 1/2 + 1/3 + 1/4 + 1/5 + 1/n;

    return n;

}

Link para o comentário
Compartilhar em outros sites

No post anterior eu usei "return n" por engano. Era "return s":

Em C/C++ a divisão de números inteiros com inteiros retorna um inteiro... então precisa também usar um float ou real pra pegar o resultado de s.

float positivo(int n) {    float s = 0.0;    for (int x=1; x <= n; x++)        s = s + 1.0/x;    return s;}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...