O que posso melhorar nesse código e não consigo descobrir porque a porcentagem está dando negativo.
O que posso melhorar nesse código e não consigo descobrir porque a porcentagem está dando negativo. #include <iostream> #include <cstdlib> #include <locale.h>
using namespace std;
int main(void) { setlocale(LC_ALL, "Portuguese"); float porcentagem,contador,acumulador,altura,menor,maior,media,altura_t; int resposta,resp,i,homem,pessoas; porcentagem, contador, acumulador, altura,menor,maior,media,altura_t=0;
contador = 0; resp = 0; resposta = 0; homem = 0;
int contm = 0; cout << "Entre com a altura, digite -1 para sair: "; cin >> altura_t; maior = altura_t; menor = altura_t;
while (altura_t != -1) {
if (altura_t == 0) { maior = altura_t; menor = altura_t; altura_t++; }
if (altura_t > maior) maior = altura_t; else if (altura_t < menor) menor = altura_t; cout << "Entre com a altura, digite -1 para sair: "; altura_t++; cin >> altura_t; }
cout << "Entre com 1 para mulheres e 2 para homens. "; cin >> resposta; if (resposta == 1) { cout << "Entre com a altura da mulher: "; cin >> altura; } else if (resposta == 2) homem++;
while (resposta != -1) { if (resposta != -1) if (resposta == 1) { acumulador = acumulador + altura; //altura++; cout << "Entre com a altura da mulher, digite -1 para sair: "; contm++; cin >> altura; } else if (resposta == 2) { homem++; } cout << "Para sair digite -1, dê enter para continuar. \\n"; cout << "Escolha, 1 para mulher, 2 para homens: \\n"; cin >> resposta; } porcentagem = contm * altura_t / 100; //porcentagem = (acumulador * contm ) / 100; //z = (x / y) * 100; media = acumulador / contm; cout << "A maior altura é: " << maior << " e a menor altura é: " << menor << "\\n"; cout << "O número de homens é de:" << homem << "\\n"; cout << "A porcentagem de mulheres em relação ao total de pessoas é de: " << porcentagem << "\\n"; cout << "A média de altura das mulheres é de: " << media << endl;
Pergunta
deathcon4
O que posso melhorar nesse código e não consigo descobrir porque a porcentagem está dando negativo.
O que posso melhorar nesse código e não consigo descobrir porque a porcentagem está dando negativo.
#include <iostream>
#include <cstdlib>
#include <locale.h>
using namespace std;
int main(void)
{
setlocale(LC_ALL, "Portuguese");
float porcentagem,contador,acumulador,altura,menor,maior,media,altura_t;
int resposta,resp,i,homem,pessoas;
porcentagem, contador, acumulador, altura,menor,maior,media,altura_t=0;
contador = 0;
resp = 0;
resposta = 0;
homem = 0;
int contm = 0;
cout << "Entre com a altura, digite -1 para sair: ";
cin >> altura_t;
maior = altura_t;
menor = altura_t;
while (altura_t != -1)
{
if (altura_t == 0)
{
maior = altura_t;
menor = altura_t;
altura_t++;
}
if (altura_t > maior)
maior = altura_t;
else if (altura_t < menor)
menor = altura_t;
cout << "Entre com a altura, digite -1 para sair: ";
altura_t++;
cin >> altura_t;
}
cout << "Entre com 1 para mulheres e 2 para homens. ";
cin >> resposta;
if (resposta == 1)
{
cout << "Entre com a altura da mulher: ";
cin >> altura;
}
else if (resposta == 2)
homem++;
while (resposta != -1)
{
if (resposta != -1)
if (resposta == 1)
{
acumulador = acumulador + altura;
//altura++;
cout << "Entre com a altura da mulher, digite -1 para sair: ";
contm++;
cin >> altura;
}
else if (resposta == 2)
{
homem++;
}
cout << "Para sair digite -1, dê enter para continuar. \\n";
cout << "Escolha, 1 para mulher, 2 para homens: \\n";
cin >> resposta;
}
porcentagem = contm * altura_t / 100;
//porcentagem = (acumulador * contm ) / 100;
//z = (x / y) * 100;
media = acumulador / contm;
cout << "A maior altura é: " << maior << " e a menor altura é: " << menor << "\\n";
cout << "O número de homens é de:" << homem << "\\n";
cout << "A porcentagem de mulheres em relação ao total de pessoas é de: " << porcentagem << "\\n";
cout << "A média de altura das mulheres é de: " << media << endl;
}
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.