Ir ao conteúdo

Posts recomendados

Postado

Olá pessoal,

Estou escrevendo um programa que calcula a quantidade de créditos de cada matéria da faculdade, então eu escrevi como se fosse um menu, onde o usuário digita a letra que está na frente da matéria. Por exemplo: A - Matemática; B - Geografia; etc. Eis a parte do código que trata das condições:

 

#include <stdio.h> 
#include <cstdlib>
#include <cstring>
#include <locale.h> 
#include <iostream> 
using namespace std;

int main() {
    int total_cred = 0;
    char materia;
  
    [...] 
  
  	cout<<"Digite a letra correspondente à matéria: ";
  	cin>>materia;
  
  if (materia == 'B' || materia =='b')
     (materia == 'C' || materia =='c')
     (materia == 'Y' || materia =='y'){

     total_cred += 2; 

       }
       if (materia == 'A' || materia =='a')
          (materia == 'D' || materia =='d')
          (materia == 'F' || materia =='f')
          (materia == 'H' || materia =='h')
          (materia == 'I' || materia =='i')
          (materia == 'J' || materia =='j')
          (materia == 'K' || materia =='k')
          (materia == 'L' || materia =='l')
          (materia == 'P' || materia =='p')
          (materia == 'S' || materia =='s')
          (materia == 'T' || materia =='t')
          (materia == 'U' || materia =='u')
          (materia == 'W' || materia =='w'){
                                
               total_cred += 3;
       }
       if (materia == 'E' || materia =='e')
          (materia == 'O' || materia =='o')
          (materia == 'Q' || materia =='q')
          (materia == 'R' || materia =='r')
          (materia == 'V' || materia =='v'){
                                
               total_cred += 4;
       }
       if (materia == 'G' || materia =='g')
          (materia == 'M' || materia =='m')
          (materia == 'N' || materia =='n')
          (materia == 'X' || materia =='x')
          (materia == 'Z' || materia =='z'){
               
               total_cred += 5;
       }

Quando eu compilo o código, aparece esse erro:

 

In function 'int main()': 
expression cannot be used as a function         (materia == 'Y' || materia =='y')
expression cannot be used as a function         (materia == 'F' || materia =='f')
expression cannot be used as a function         (materia == 'Q' || materia =='q')
expression cannot be used as a function         (materia == 'N' || materia =='n')

 

O estranho disso é que o erro está somente nessas letras, nos outros não aparece nada, mesmo sendo idêntico. Eu já tentei usar strcmp, porém dá um outro erro:

invalid conversion from 'char' to 'const char*' [-fpermissive]      if (strcmp(materia, 'B')== 0 || strcmp(materia, 'b')== 0) 

Gostaria de saber onde estou errando, tanto usando o strcmp ou usando a outra forma de comparação.

Desculpe pelo tamanho da pergunta


Grato desde já!

Postado

Tá faltando o operador OU ( || ) em cada linha...

 

  if (materia == 'B' || materia =='b') ||
     (materia == 'C' || materia =='c') ||
     (materia == 'Y' || materia =='y'){

}

 

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!