Logo Hardware.com.br
_Oliver_
_Oliver_ Veterano Registrado
1.7K Mensagens 0 Curtidas

Analisem este programa em C++

#1 Por _Oliver_ 13/06/2003 - 14:15
#include <iostream>

using std::cout;
using std::cin;
using std::endl;
using std::ios;

#include<iomanip>

using std::setprecision;
using std::setiosflags;

int main ()
{
int total,
contador,
nota;
double media; // número com ponto decimal para média

// Fase de inicialização ------------------------------------------
total = 0;
contador = 0;

// Fase de processamento ------------------------------------------
cout << "Forneça nota ou -1 para finalizar: ";
cin >> nota;

while ( nota != -1 ) {
total = total + nota;
contador = contador + 1;
cout << "Forneça nota ou -1 para finalizar: ";
cin >> nota;
}

// Fase de término -------------------------------------------
if ( contador != 0 ) {
media = static_cast< double >( total ) / contador;
cout << "A média da turma é: " << setprecision ( 2 )
<< setiosflags ( ios::fixed | ios::showpoint )
<< media << endl;
}
else
cout << "Nenhuma nota foi fornecida." << endl;

return 0;
}


Bom, o programa funfa, o problema está na estrutura else, pois não consigo fazer com que o string Nenhuma nota foi fornecida. seja impresso, sendo que se eu digitasse algo diferente de um inteiro qualquer ou -1, este texto deveria aparecer! 8O Alguma luz????
_Oliver_
_Oliver_ Veterano Registrado
1.7K Mensagens 0 Curtidas
#3 Por _Oliver_
13/06/2003 - 15:38
#pragma
[code]
// Fase de processamento ------------------------------------------
cout << "Forneça nota ou ...
Valeu pela dica, mas dessa maneira o código nem compila, dá um monte de erros...
[Linux User #296645]
[ Athlon XP 2000+ / Kuruma 5.1 / Ubuntu 5.1 ]|[ 512MB DDR ]|[ Radeon 9600PRO 256MB/128Bits ]|[ ASUS A7S333 ]|[ SONY Trinitron Multiscan210sf 17" ]
#pragma
#pragma Membro Senior Registrado
219 Mensagens 0 Curtidas
#4 Por #pragma
13/06/2003 - 16:07
... compilei, executei, e funcionou... no Dev-C++

taí o codigo completo


#include <iostream>
#include <stdlib.h>

using std::cout;
using std::cin;
using std::endl;
using std::ios;

#include<iomanip>

using std::setprecision;
using std::setiosflags;

int main(int argc, char *argv[])
{
int total,
contador,
nota;
double media; // número com ponto decimal para média

// Fase de inicialização ------------------------------------------
total = contador = 0;

// Fase de processamento ------------------------------------------
cout << "Forneça nota ou -1 para finalizar: ";
cin >> nota;

while ( cin && nota != -1) {
total += nota;
contador++;
cout << "Forneça nota ou -1 para finalizar: ";
cin >> nota;
}

// Fase de término -------------------------------------------
if ( contador != 0 ) {
media = static_cast< double >( total ) / contador;
cout << "A média da turma é: " << setprecision ( 2 )
<< setiosflags ( ios::fixed | ios::showpoint )
<< media << endl;
}
else {
cout << "Nenhuma nota foi fornecida." << endl;
}

system("PAUSE&quot;
return 0;
}



[]'s
[email]pragmasoftware@yahoo.com[/email]
_Oliver_
_Oliver_ Veterano Registrado
1.7K Mensagens 0 Curtidas
#5 Por _Oliver_
13/06/2003 - 17:21
#pragma
... compilei, executei, e funcionou... no Dev-C++

taí o codigo completo

[code]
#include
#inc...
Bom, em primeiro lugar, quero explicar que os erros que deram da primeira vez, eram devidos às indentações, não sei porque, mas tive que eliminar as indentações para poder compilar sem erros, (ilegal tokens). Quanto ao funcionamento do programa, ambos os códigos funcionam exatamente da mesma maneira, pois, quando se digita "-1" antes de qqr nota ser fornecida, ai então temos o aviso "Nenhuma nota foi fornecida". É que eu pensei que este aviso fosse relativo à cada linha, individualmente, mas ela se refere somente ao caso de não ter sido digitada nenhuma nota. De qqr forma, obrigado.
[Linux User #296645]
[ Athlon XP 2000+ / Kuruma 5.1 / Ubuntu 5.1 ]|[ 512MB DDR ]|[ Radeon 9600PRO 256MB/128Bits ]|[ ASUS A7S333 ]|[ SONY Trinitron Multiscan210sf 17" ]
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal