Dúvida em exercício c++ simples

26/01/2018

2

using namespace std;
int main()
{
setlocale(LC_ALL, "Portuguese");
float soma_saldo, media_saldo, saldo;
int i, acm, porc;
soma_saldo = 0;
media_saldo = 0;
acm = 0;
saldo = 0;
for (i = 1; i <= 10; i++)
{
cout << "Entre com o saldo do cliente: " << i << " vez ";
cin >> saldo;
soma_saldo = soma_saldo + saldo;
media_saldo = soma_saldo / 10;

if (saldo > 0)
{
acm = acm + 1;
}
else if ((saldo == 0) || (saldo < 0))
{
acm = acm + 1;
porc = acm / 100;
}

}
cout << " A media do saldo dos clientes é de: " << media_saldo << "\\\\\\\\n";
cout << " O número de clientes com saldo credor é de: " << acm << "\\\\\\\\n";
cout << " A porcentagem de clientes com saldo devedor é de: " << porc << "\\\\\\\\n";
}

Prazer para todos. Estou com dúvida na condicional. Acontece que o acumulador está acumulando 10 e não somente os que tem saldo 0 ou negativo, não sei o que está errado. Na segunda para não apresenta a porcentagem. É como o se não existisse. Alguém pode dar uma luz para eu resolver?
Obrigado.
Responder

Posts

Olá Paulo. Parece que você está utilizando a mesma variável (acm) no "if" e também no "else". Ou seja, quando o saldo é maior que zero ele acrescenta 1em "acm" e quando é igual ou menor que zero também. Diferencie os nomes das variáveis. Por exemplo: após o "If" defina como "acmSaldoCredor" e após o "else" como "acmSaldoDevedor". Afinal, são duas informações de acumuladores diferentes que você precisa. Corrija onde necessário no restante do código. Tudo bem ? Abraço.
Responder
Opa... Esqueci da porcentagem. Você definiu a variável "porc" como inteira. Mas lembre-se que divisões podem resultar em números decimais (com vírgula). Então ela deve ser definida como "float" também. Abraço.
Responder

03/02/2018

Paulo Kutwak

Obrigado pela orientação. Fiz o exercício e deu certinho.
Responder