• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

InfernalStorm

Case

12 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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;

:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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" '.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#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!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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... )

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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;
}

...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora