Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DoisReal

[Resolvido] IF x SWITCH

Recommended Posts

Olá Pessoal,

 

Fiz um código com IF e funcionou perfeitamente. Peguei o mesmo codigo e substituí o IF por SWITCH e deu erro.

Vou colar o código pra ver se vcs conseguem me ajudar.

 

# include <iostream.h>
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
# include <conio.h>
# include <math.h>
# include <iostream> 
# include <windows.h>
# define MAX_LIN 3
# define MAX_COL 2

float conversao(float); //protótipo da função
float converter(int, int); //protótipo da função
void vetor(int vet[MAX_LIN][MAX_COL]); // protótipo da função

int main() {
    char opcao; 
    do {
        system("cls");
        cout << "-----Menu-----";
        cout << "\n1 - Exercicio1";
        cout << "\n2 - Exercicio2";
        cout << "\n3 - Exercicio3";
        cout << "\nS - Sair";
        cout << "\n\nDig. a opcao desejada: ";
        cin >> opcao;
        
        switch (opcao) {
               
               case '1':
                    float x;
                    cout << "Digite em graus celsio: ";
                    cin >> x;
                    cout << "A temperatura em Fahrenheit eh = " << conversao(x);
                    getch();
               break;
           
           
           
               case '2':
                    int recebe1;
                    float recebe2;
                    int a = 10, b = 3;
                    recebe1 = a / b;
                    recebe2 = converter(a, B);
                    cout << "O valor de recebe1 = " << recebe1;
                    cout << "\nO valor de recebe2 = " << recebe2;
                    getch();
               break;
           
               case '3':
                    int i, j;
                    int vet[MAX_LIN][MAX_COL];
                    for (i=0;i<MAX_LIN;i++)
                    for (j=0;j<MAX_COL;j++) {
                        cout << "digite o valor vet[" << i << "],[" << j << "]: ";
                        cin >> vet[i][j];
                        }
                    vetor(vet);
                    getch();
               break;
               
               default: cout << "Opcao invalida!";
               }
               
        } while (opcao != 's');
    
    cout << "Voce decidiu sair!";              
    getch();
    }       
     


float conversao(float c) {
      return (9*c+160)/5;
      }
      
float converter(int x, int y) {
      return (float) x/y;
      }
      
void vetor(int vet[MAX_LIN][MAX_COL]) {
     for (int i=0;i<MAX_LIN;i++)
     for (int j=0;j<MAX_COL;j++) {
         cout << "\nO valor de vet[" << i << "," << j << "]: " << vet[i][j];
         }
     }

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que não funciona?

 

# include <iostream>
# include <cstdio>

# define MAX_LIN 3
# define MAX_COL 2

float conversao(float); //protótipo da função
float converter(int, int); //protótipo da função
void vetor(int vet[MAX_LIN][MAX_COL]); // protótipo da função

using namespace std;

int main() {
    //Declaracoes
    float x;
    char opcao;
    int recebe1;
    float recebe2;
    int a = 10, b = 3;
    int i, j;
    int vet[MAX_LIN][MAX_COL];
    do {
        cout << "-----Menu-----";
        cout << "\n1 - Exercicio1";
        cout << "\n2 - Exercicio2";
        cout << "\n3 - Exercicio3";
        cout << "\nS - Sair";
        cout << "\n\nDig. a opcao desejada: ";
        cin >> opcao;
        switch (opcao) {
               case '1':
                    cout << "Digite em graus celsio: ";
                    cin >> x;
                    cout << "A temperatura em Fahrenheit eh = " << conversao(x) << endl;
               break;
               case '2':
                    recebe1 = a / b;
                    recebe2 = converter(a, B);
                    cout << "O valor de recebe1 = " << recebe1;
                    cout << "\nO valor de recebe2 = " << recebe2 << endl;
               break;
               case '3':
                    for (i=0;i<MAX_LIN;i++)
                    for (j=0;j<MAX_COL;j++) {
                        cout << "digite o valor vet[" << i << "],[" << j << "]: ";
                        cin >> vet[i][j];
                        }
                    vetor(vet);
               break;
               default: cout << "Opcao invalida!" << endl;
               }
        } while (opcao != 's');
        cout << "Voce decidiu sair!" << endl;
        return 0;
}



float conversao(float c) {
      return (9*c+160)/5;
      }

float converter(int x, int y) {
      return (float) x/y;
      }

void vetor(int vet[MAX_LIN][MAX_COL]) {
     for (int i=0;i<MAX_LIN;i++)
     for (int j=0;j<MAX_COL;j++) {
         cout << "\nO valor de vet[" << i << "," << j << "]: " << vet[i][j];
         cout << endl;
         }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual compilador?

O Código que te enviei compila tranquilo pelo Code::Blocks

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual compilador?

O Código que te enviei compila tranquilo pelo Code::Blocks

 

[]s

 

Só pra constar, o Code Blocks é a IDE. Se você usa Windows, ele provavelmente está configurado para usar o MinGW (Minimalist GNU fow Windows).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguns compiladores não aceitam declaração de variáveis em blocos case diretamente.

A especificação ANSI C só permite a declaração de uma variável dentro de um escopo.

Os "cases" de um "switch" não são escopos, é preciso delimitá-los com chavess ('{}') para que sejam.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pessoal,

 

Agora entendi, o case nao aceite declaração de variaveis dentro dele e o IF aceita.

 

Agora rodou com o modelo do quitZAUMMM.

 

Vlw Obrigado.

 

Obs: Eu utilizo o Dev-C++

 

Podem encerrar o tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.