Ir ao conteúdo

Posts recomendados

Postado
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
	float s=0, r=0, i=0, y=1;
	double x;

	cin >> x;
	while(s <= 10000){
		s = ((x + i)/y);
		r = s+r;
		i++;
		y++;
	}
	
	cout << fixed << setprecision(2);
	cout << "S = " << r << endl;
		
	return 0;
}

Não retorna nenhum valor para "S = ", eu sei que o código está incompleto só preciso de uma ajuda para resolver este primeiro problema.

OBS: Tem que ser usado while.

 

Calcule este somatório: S = (x+0)/1 +  (x+1)/2 + (x+2)/3 + ... + (x+n)/(n+1); até que o resultado seja o menor número superior à 10 mil possível.

 

Entrada

    Contém o número real X.

Saída 

    A saída deve conter o resultado do somatório S com duas casas decimais e o número de parcelas que foram somadas, também com duas casas decimais .

 

Exemplos

INPUT                                         OUTPUT

______________________________________________

6                                        |          S = 10000.91 

                                          |          9952.00 Repetições

 

Postado

@BLN      olá ,  esse exercício é bem complicado mesmo ,  e fazer cálculos e formulas é muito chato ,  mas nesse exemplo que você postou o loop while nunca vai terminar pois a variável  " s  " vai diminuindo a cada passo .

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;

int main()
{
	float s = 0, r = 0, i = 0, y = 1;
	double x;
	cout << "valor de X ";
	cin >> x;
	while (s <= 10000) {
		s = ((x + i) / y);
		r = s + r;
		i++;
		y++;
		cout << "val s " << s << endl;
		Sleep(1000);
	}

	cout << fixed << setprecision(2);
	cout << "S = " << r << endl;

	return 0;

 

Postado

Olá!

 

Não parece ser um problema de C++ ou do while(). Apenas uma questão de aritmética

 

while(s <= 10000)
{
		s = ((x + i)/y);
		r = s+r;
		i++;
		y++;
}

 

o loop vai rodar até s ser menor que 10.000. Se y crescer mais rápido que (x + i) s vai diminuir então nunca vai sair do loop.

 

Em especial enquanto está testando porque simplesmente não mostra na tela o valor de s dentro do loop. E começa com um valor de x constante e conhecido???

 

Postado

@BLN Na variável das repetições você está somando o próprio valor dela com s.

 

Não devia ser um incremento simples de um?

 

#include <iostream>
using namespace std;

int main(){
    double s = 0;
    double x = 6;
    unsigned n = 0;

    while(s <= 10000){
        s += (x + n)/(n + 1);
        n += 1;
    }
    cout << "S = " << s << endl;
    cout << n << " Repeticoes\n";
    return 0;
}

 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!