Ir para conteúdo

Arquivado

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

  • 0
ezbueno

Lógica de Programação - Dúvida - C++

Pergunta

Olá, pessoal!

 

Sou iniciante em programação. Criei um sistema simples para mostrar os valores de uma matriz, conforme o menu de escolha. O sistema só é encerrado, se o valor 5 for digitado. Segue abaixo o código:

 

 

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

int Menu (){
    
   cout << "=========================================" << endl;
   cout << "        M E N U  D E  O P Ç Õ E S        " << endl;
   cout << "=========================================" << endl;
   cout << "[1] Mostrar a Matriz" << endl;
   cout << "[2] Diagonal Principal" << endl;
   cout << "[3] Triângulo Superior" << endl;
   cout << "[4] Triângulo Inferior" << endl;
   cout << "[5] Sair" << endl;
   cout << "=========================================" << endl;    
    
}

int main (){
    
    setlocale (LC_ALL, "Portuguese");
    
    int l, c, mat[4][4], opcao;
    char esc = 's';

    for (l = 0; l < 4; l++){
        for (c = 0; c < 4; c++){
        cout << "Digite o valor da posição " << "[" << l << "," << c << "]: ";
        cin >> mat[l][c];
        }
    }
    system ("cls");    
do{
    Menu();
    cout << "Digite a opção desejada: ";
    cin >> opcao;
    system ("cls");
    if (opcao == 1){
        for (l = 0; l < 4; l++){
            for (c = 0; c < 4; c++){
                printf ("%5d", mat[l][c]);
            }
            cout << "\n";
        }
    }
    if (opcao == 2){
        for (l = 0; l < 4; l++){
            printf ("\n%5d", mat[l][l]);
        }
        cout << "\n";
    }
    if (opcao == 3){
        for (l = 0; l < 4; l++){
            for (c = 0; c < 4; c++){
                if (l > c || l == c){
                    printf ("     ");
                }else if (l < c || l == c){
                    printf ("%5d", mat[l][c]);
                }
            }
            cout << "\n";
        }
    }
    if (opcao == 4){
        for (l = 0; l < 4; l++){
            for (c = 0; c < 4; c++){
                if (l < c || l == c){
                    printf ("     ");
                }else if (l > c || l == c){
                    printf ("%5d", mat[l][c]);
                }
            }
            cout << "\n";
        }
    }
}while (opcao < 5);
    cout << "ENCERRANDO...";
}
 

Eu gostaria de fazer uma implementação para mostrar da seguinte maneira: Se o usuário digitar algum valor que não está contido no menu, o sistema mostraria a informação "VALOR INVÁLIDO". O problema é que se eu fizer uma condição para comparar se a minha variável "opcao" for menor do que 1 ou "opcao" maior do que 5, o sistema irá encerrar o meu programa e exibir a mensagem "VALOR INVÁLIDO",  juntamente com a outra mensagem do final do programa que é "ENCERRANDO..."

De que forma eu poderia implementar isso, sem que o meu programa fosse encerrado até que o valor 5 seja escolhido? Alguém poderia me ajudar? Grato pela atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta


  • Conteúdo Similar

    • Por josenilson
      Olá pessoal !
       
      Estou tentando rodar um projeto de um jogo na minha maquina porem o mesmo pede para adicionar o log4cxx 0.10.0, realizei pesquisas na internet a respeito mas até agora nada, Encontre para baixar nesse site https://logging.apache.org/log4cxx/1.0.0/download.html porem não sei se devo instalar ele no windows porque ao exportar ele no projeto as depêndencias que precisam dele ficam informando o erro log4cxx.logger.h no such file or directory. a linguagem que estou usando e C++
       
       
    • Por 4Unknow
      Bom dia comunidade Imasters.

      Venho aqui tratar de um problema dúvida que estou tendo com um layout que estou tentando usar o formulário php dele.
      Quando clico em enviar ele me enviar para um arquivo .php  (assets/vendor/simple-forms/sendmail.php)

      Ele não envia o e-mail, acredito que deveria aparecer uma mensagem que o contato foi enviado corretamente.
      Vou deixar os arquivos aqui em anexo quem puder me ajudar nessa, ficaria muito grato.
       
      Link Website (wetransfer.com)
    • Por Sharank
      Strcat Function In C++
       
      I'm new to C and C++ programming, can anyone give me a hint on what I'm doing wrong here. I'm trying to write to concat function that takes to pointers to chars and concatenates the second to the first. The code does do that, but the problem is that it adds a bunch of junk at the end.
       
      For instance, when passing the arguments - "green" and "blue", the output will be "greenblue" plus a bunch of random characters. I also wrote the strlen function that strcat uses, which I will provide below it for reference. I'm using the online compiler at InterviewBit The exact instructions and specification is this:
       
      int main(int argc, char** argv)
      {
      const int MAX = 100;
       
      char s1[MAX];
      char s2[MAX];
       
      cout << "Enter your first string up to 99 characters. ";
      cin.getline(s1, sizeof(s1));
      int size_s1 = strlen(s1);
      cout << "Length of first string is " << size_s1 << "\n";
       
      cout << "Enter your second string up to 99 characters. ";
      cin.getline(s2, sizeof(s2));
      int size_s2 = strlen(s2);
      cout << "Length of second string is " << size_s2 << "\n";
      cout << " Now the first string will be concatenated with the second
      string ";
      char* a = strcat(s1,s2);
       
      for(int i = 0; i<MAX; i++)
      cout <<a;
       
      // system("pause");
      return 0;
      }
       
      //strcat function to contatenate two strings
      char* strcat(char *__s1, const char *__s2)
      {
      int indexOfs1 = strlen(__s1);
      int s2L = strlen(__s2);
      cout <<s2L << "\n";
      int indexOfs2 = 0;
      do{
      __s1[indexOfs1] = __s2[indexOfs2];
      indexOfs1++;
      indexOfs2++;
      }while(indexOfs2 < s2L);
       
       
      return __s1;
      }
       
      //Returns length of char array
      size_t strlen(const char *__s)
      {
      int count = 0;
      int i;
      for (i = 0; __s != '\0'; i++)
      count++;
      return (count) / sizeof(__s[0]);
       
      }
    • Por Hacker_Buiu
      Tem que completar o perfil para curtir e ser curtido sem dar erro?
    • Por Hacker_Buiu
      Porque não ganho reputação com o meu bom trabalho?
×

Informação importante

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