Jump to content
Sign in to follow this  
InfernalStorm

Case

Recommended Posts

InfernalStorm

boas noites. pessoal tou me a atrofiar tdo com isto. alguem me pode dizer o k tenho mal aki e o k tenho de alterar???

#include <iostream.h>

void main()

{

int nota;

cout<<"0 - 4 Mau\n";

cout<<"5 - 9 Mediocre\n";

cout<<"10 - 13 Suficiente\n";

cout<<"14 - 17 Bom\n";

cout<<"18 - 20 Muito Bom\n";

cout<<"Introduza a nota\n";

cin>> nota;

switch (nota)

{

case 'nota': (nota >=0 && <=4); cout<<"Mau\n" <<endl;break;

case 'nota': (nota >=5 && <=9); cout<<"Mediocre\n" <<endl;break;

case 'nota': (nota >=10 && <=13); cout<<"Suficiente\n" <<endl;break;

case 'nota': (nota >=14 && <=17); cout<<"Bom\n" <<endl;break;

case 'nota': (nota >=18 && <=20); cout<<"Muito Bom\n" <<endl;break;

default : cout<<"ERRO!!!\n";

}

}

agradeço as respostas obrigado

Share this post


Link to post
Share on other sites
vbmaster

Tens um erro redondo no case!... não podes fazer case 'nota' mas sim, em vez de 'nota', por o valor que o case tem de ter para ser executado o código posterior.

E falta-te o using namespace std;

:)

Share this post


Link to post
Share on other sites
brink@ero

Tens um erro redondo no case!... não podes fazer case 'nota' mas sim, em vez de 'nota', por o valor que o case tem de ter para ser executado o código posterior.

E falta-te o using namespace std;

:)

Deve começar por:

#include <iostream>

using namespace std;

E o 'case' só aceita constantes!

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/statem_10.asp

Por isso conselho-te a usar o if...elseif...

Outra coisa, ' cout<<endl ' é o mesmo que ' cout<<"\n" '.

Share this post


Link to post
Share on other sites
InfernalStorm

#include <iostream.h>

void main()

{

int x, nota;

cout<<"0 - 4 Mau\n";

cout<<"5 - 9 Mediocre\n";

cout<<"10 - 13 Suficiente\n";

cout<<"14 - 17 Bom\n";

cout<<"18 - 20 Muito Bom\n";

cout<<"Introduza a nota\n";

cin>> nota;

x=nota/4;

switch (x)

{

case 0: (nota >=0 && nota <=4); cout<<"Mau\n" <<endl;break;

case 1: (nota >=5 && nota <=9); cout<<"Mediocre\n" <<endl;break;

case 2: (nota >=10 && nota <=13); cout<<"Suficiente\n" <<endl;break;

case 3: (nota >=14 && nota <=17); cout<<"Bom\n" <<endl;break;

case 4: (nota >=18 && nota <=20); cout<<"Muito Bom\n" <<endl;break;

default : cout<<"ERRO!!!\n";

}

}

este é o meu programa mas ta a dar uma coisa mal.eu meto 4 e ele ja me da mediocre, em x de me dar mau

Share this post


Link to post
Share on other sites
saramgsilva

bem pra comecar nao podes fazer iostream.h!!  :dontgetit: fiz a minha versao...

#include <iostream>
using namespace std;
int main()
{
   int x, nota;

   cout<<"0 se 0 - 4 \n";
   cout<<"1 se 5 - 9 \n";
   cout<<"2 se 10 - 13\n";
   cout<<"3 se 14 - 17\n";
   cout<<"4 se 18 - 20\n";

   cout<<"Introduza a nota\n";
   cin>> nota;

  
   switch (nota)
   {
   case 0: { cout<<"Mau\n" <<endl;break;}
   case 1: { cout<<"Mediocre\n" <<endl;break;}
   case 2: { cout<<"Suficiente\n" <<endl;break;}
   case 3: { cout<<"Bom\n" <<endl;break;}
   case 4: { cout<<"Muito Bom\n" <<endl;break;}
   default : cout<<"ERRO!!!\n";
   }
int sair; cin>>sair;   
return 0;
}

e nao entendi o pq de

(nota >=0 && nota <=4); 

nao vai servir para nada...  :)

Share this post


Link to post
Share on other sites
vbmaster

tofas... não percebi para que era a variavel x.... além disso o objectivo do rapaz era introduzir uma nota de 1 a 20 e ser retornado a apreciação correspondente à escala em que se encontra... :confused:

EDIT: eu faria assim:

#include <iostream>
using namespace std;
int main () {
   int nota,sair;

   cout<<"0 se 0 - 4 \n";
   cout<<"1 se 5 - 9 \n";
   cout<<"2 se 10 - 13\n";
   cout<<"3 se 14 - 17\n";
   cout<<"4 se 18 - 20\n";

   cout<<"Introduza a nota\n";
   cin>> nota;
   
if (nota > 20) cout<<"INSERE-ME UMA NOTA SUA BESTA!"; 
else if (nota >= 18) cout <<"Muito bom\n\n";
   else if (nota >=14) cout << "Bom\n\n";
     else if (nota >=10) cout << "Suficiente\n\n";
       else if (nota >= 5) cout << "Mediocre\n\n";
         else if (nota >= 0) cout << "Mau\n\n";


cin>>sair;   
return 0;
}

Share this post


Link to post
Share on other sites
saramgsilva

tofas... não percebi para que era a variavel x.... além disso o objectivo do rapaz era introduzir uma nota de 1 a 20 e ser retornado a apreciação correspondente à escala em que se encontra... :confused:

essa variavel nao estava mto correcta... acho que melhorando 1 pouco o bla bla ...fica c o programa que prentende...

Share this post


Link to post
Share on other sites
brink@ero

#include <iostream.h>

void main()

{

int x, nota;

cout<<"0 - 4 Mau\n";

cout<<"5 - 9 Mediocre\n";

cout<<"10 - 13 Suficiente\n";

cout<<"14 - 17 Bom\n";

cout<<"18 - 20 Muito Bom\n";

cout<<"Introduza a nota\n";

cin>> nota;

x=nota/4;

switch (x)

{

case 0: (nota >=0 && nota <=4); cout<<"Mau\n" <<endl;break;

case 1: (nota >=5 && nota <=9); cout<<"Mediocre\n" <<endl;break;

case 2: (nota >=10 && nota <=13); cout<<"Suficiente\n" <<endl;break;

case 3: (nota >=14 && nota <=17); cout<<"Bom\n" <<endl;break;

case 4: (nota >=18 && nota <=20); cout<<"Muito Bom\n" <<endl;break;

default : cout<<"ERRO!!!\n";

}

}

este é o meu programa mas ta a dar uma coisa mal.eu meto 4 e ele ja me da mediocre, em x de me dar mau

(nota >=18 && nota <=20); <- só assim não faz nada de útil!!

x=nota/4; <- até poderia funcionar se os intervalos fossem constantes (de 4 em 4)

este é o meu programa mas ta a dar uma coisa mal.eu meto 4 e ele ja me da mediocre, em x de me dar mau

Simples, tu ao colocares 4, na linha:

x=nota/4; <- faz a divisão inteira 4/4=1 por isso vai para o case 1!!

Share this post


Link to post
Share on other sites
vbmaster

vdmaster acho que  o que fizeste é andar para tras!! o case é o melhor para estes casos!!  :confused: nao te aconselho isso[quote

caso apresentem um código com case e que funcione totalmente, eu reconheço essa afirmação..... ;) (subentende-se que ainda não o vi... )

Share this post


Link to post
Share on other sites
brink@ero

Para quem teima em querer utilizar o case, fica aqui um exemplo (por enquanto não vejo outro):

#include <iostream>
#include <math.h>

using namespace std;

int main()
{
   int nota, categoria,
   aux1, aux2;

   cout<<"0 - 4 Mau\n";
   cout<<"5 - 9 Mediocre\n";
   cout<<"10 - 13 Suficiente\n";
   cout<<"14 - 17 Bom\n";
   cout<<"18 - 20 Muito Bom\n";

   cout<<"Introduza a nota\n";
   cin>>nota;

   aux1=nota/10;
   aux2=pow(aux1,2)+aux1;

   categoria = (nota>=0) ? (nota - aux2)/(5-aux1) : -1;
  
   switch (categoria)
   {
   case 0:
   cout<<"Mau\n" <<endl;
   break;
   case 1:
   cout<<"Mediocre\n" <<endl;
   break;
   case 2:
   cout<<"Suficiente\n"<<endl;
   break;
   case 3:
   cout<<"Bom\n" <<endl;
   break;
   case 4:
   cout<<"Muito Bom\n"<<endl;
   break;
   default :
   cout<<"ERRO!!!\n";
   }
   
   return 0;
}

...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.