Ir ao conteúdo
  • Cadastre-se

C++ Estrutura de Repetição While


BLN

Posts recomendados

#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

 

Link para o comentário
Compartilhar em outros sites

@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;

 

Link para o comentário
Compartilhar em outros sites

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

 

Link para o comentário
Compartilhar em outros sites

@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;
}

 

Link para o comentário
Compartilhar em outros sites

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