exercicio c++ [RESOLVIDO]

1. exercicio c++ [RESOLVIDO]

jaime
jaime_sp

(usa Ubuntu)

Enviado em 20/12/2010 - 18:57h

alguem poderia me dizer onde estar o erro, esse programa teria que ao chegar nos 10 alunos ele sair do laço e falar se
o curso teria o aumento
mais não sei onde estou errando
algue poderia me dar uma dica?

#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int passou = 0 ,reprovado = 0 , resultado, estudante =1;
while (estudante <=10)
{
cout << "forneça o resultado (1 = aprovado, 2 = reprovado)";
cin >> resultado;
}

if (resultado == 1)
{
passou = passou +1;
}

else
{
reprovado = reprovado +1;
}
estudante = estudante +1;
cout << "aprovados : " << estudante << endl;
cout << "reprovados : " << reprovado << endl;


if (passou > 8)
{
cout << "aumente o valor do curso :";
}


return 0;

}




  


2. Re: exercicio c++ [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/12/2010 - 21:57h

Erro de lógica. Não conheço c++ mas acho que tem um loop infinito ai. Como ele vai sair do loop quando o estudante chagar a 10 se você não incrementa o mesmo dentro do loop? Outra coisa, se entendi bem o propósito do algoritmo, os blocos if e else também tem de estar dentro do loop. Outro erro, você quer mostrar o número de aprovados, então o certo é "cout << "aprovados : " << passou << endl;" e não "cout << "aprovados : " << estudante << endl;".

Dá uma revisada no código ai, faz o teste de mesa que você acha onde errou.


3. Re: exercicio c++ [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 20/12/2010 - 22:01h

"alguem poderia me dizer onde estar o erro" é muito vago.

Porque você acha que tem algum erro ? O compilador emite alguma mensagem de erro ? Se sim, qual ? Se compila, o que ele faz ? O que ele deveria fazer ? Dê exemplos: eu entro com y, ele retorna x, sendo que deveria retornar n...





4. Re: exercicio c++ [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/12/2010 - 22:22h

Como falei acima andre, os erros são simples erros de lógica. Loop infinito, verificação de condições em local errado além de que estudante inicia com valor de 1, onde o certo é iniciar com 0, caso contrário termina com valor de 11.


5. Re: exercicio c++ [RESOLVIDO]

Alan Souza
alan-souza

(usa Slackware)

Enviado em 20/12/2010 - 22:33h

A lógica não está certa para o que você está querendo!


6. Re: exercicio c++ [RESOLVIDO]

Alan Souza
alan-souza

(usa Slackware)

Enviado em 20/12/2010 - 22:55h

while (estudante <=10)
{
cout << "forneça o resultado (1 = aprovado, 2 = reprovado)";
cin >> resultado;
if (resultado == 1){
passou++;
}
else{
reprovado++;
}
estudante++;
}


7. Também concordo!

Ezequias Rocha
Ezequias Rocha

(usa Ubuntu)

Enviado em 21/12/2010 - 08:12h

Altere o seu programa para o seguinte e veja se atende aos requisitos:


#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int passou = 0 ,reprovado = 0 , resultado, estudante =1;
while (estudante <=10)
{
cout << "forneça o resultado (1 = aprovado, 2 = reprovado)";
cin >> resultado;
//}//Esta chave foi comentada e inserida abaixo

if (resultado == 1)
{
passou = passou +1;
}

else
{
reprovado = reprovado +1;
}
estudante = estudante +1;

}//Chave inserida aqui

cout << "aprovados : " << estudante << endl;
cout << "reprovados : " << reprovado << endl;


if (passou > 8)
{
cout << "aumente o valor do curso :";
}


return 0;

}


Uma maneira mais limpa de fazê-lo seria conforme abaixo:

#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int passou = 0 ,reprovado = 0 , resultado, estudante =1;

while (estudante <=10)
{
cout << "forneça o resultado (1 = aprovado, 2 = reprovado)";
cin >> resultado;

if (resultado == 1)
++passou;
else
++reprovado;

++estudante;
}

cout << "aprovados : " << estudante << endl;
cout << "reprovados : " << reprovado << endl;


if (passou > 8)
cout << "aumente o valor do curso :";

return 0;
}


Embraces!


8. exercicio c++

jaime
jaime_sp

(usa Ubuntu)

Enviado em 21/12/2010 - 19:06h

brigado a todos pela dica! é realmente o erro estava no incremento coisas simples que para um novato se torna uma grande dor de cabeça , seguir o exemplo do Ezequias e deu certo

brigado novamente a todos pela paciencia






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts