Ir ao conteúdo
  • Cadastre-se

C++ Não consigo arrumar esse erro em While


Ir à solução Resolvido por Flávio Pedroza,

Posts recomendados

 

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <stdbool.h>
#include <string>
#include <conio.h>

using namespace std;

int main()
{
	//Permite o padrão de escrita em PT-BR
    setlocale(LC_ALL, "portuguese");
	
	//Variáveis
    char l, c;
    int qtdLinha, qtdColuna;
    int op = 1, i;
	string texto;
	
	//Coleta o Número de Colunas e Linhas
    printf("\nDigite o Número de Colunas que deseja: ");
    scanf("%i", &qtdColuna);
    
    printf("\nDigite o Número de Linhas que deseja: ");
    scanf("%i", &qtdLinha);

	//Variáveis
    string linha[qtdLinha];
    string coluna[qtdColuna];

	//Coleta o nome das Colunas e das Linhas
    for (c = 0; c < qtdColuna; c++)
    {
        printf("Digite o nome da coluna: ");
        scanf("%s", &coluna[c]);
    }
    for (l = 0; l < qtdLinha; l++)
    {
        printf("Digite o nome da linha: ");
        scanf("%s", &linha[l]);
    }
		system("clear||cls");
		
		
		//Decide o que o programa vai fazer
        while (op != 0)
        {
            cout << "Deseja Visualizar a Matriz 1(sim) 0(não): ";
            scanf("%i", &i);

            switch (i){

            case (1):
                for (c=0; c< qtdColuna; c++){
                	texto = coluna[c];
                	cout <<texto << endl;
                }
				
				printf("\n\n");
				
                for (l=0; l< qtdLinha; l++){
                	texto = linha[l];
                	cout <<texto << endl;
                						   }
                break;
                
            case (0):
                printf("\nOPERAÇÃO FINALIZADA");
                exit;
                break;
                
            default:
                printf("\nOPERAÇÃO INVÁLIDA!");
                break;
            		  } 
        }
    getchar();
    return 0;
}

Nenhum case desse while funciona, alguém pode me ajudar por favor?

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução
#include <iostream>
#include <string>

using namespace std;

int main()
{
	
    int qtdLinha, qtdColuna;
    int op = 1;
	
	//Coleta o Número de Colunas e Linhas
    cout << "\nDigite o Número de Colunas que deseja: ";
    cin >> qtdColuna;
    
    cout << "\nDigite o Número de Linhas que deseja: ";
    cin >> qtdLinha;

	//Variáveis
    string linha[qtdLinha];
    string coluna[qtdColuna];

	//Coleta o nome das Colunas e das Linhas
    for (int c = 0; c < qtdColuna; c++)
    {
        cout << "Digite o nome da coluna: ";
        cin >> coluna[c];
    }
    for (int l = 0; l < qtdLinha; l++)
    {
        cout << "Digite o nome da linha: ";
        cin >> linha[l];
    }
		
		
		//Decide o que o programa vai fazer
        while (op != 0)
        {
            cout << "Deseja Visualizar a Matriz 1(sim) 0(não): ";
            cin >> op;

            switch (op){

            case (1):
                for (int c=0; c< qtdColuna; c++){
                	cout << coluna[c] << endl;
                }
				
				cout << "\n\n";
				
                for (int l=0; l< qtdLinha; l++){
                	cout << linha[l] << endl;
                }
                break;
            case (0):
                cout << "\nOPERAÇÃO FINALIZADA";
                break;
            default:
               cout<<"\nOPERAÇÃO INVÁLIDA!\n";
               break;
            } 
        }
    
    getchar();
    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Fídias Torres Não recomendo ficar misturando C e C++, ou você faz em um ou no outro.

 

Seria essa a sua ideia?

usando apenas C.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define T_STR 80

void
apagaTela(void)
{
    int cont;
    for (cont = 0; cont < 40; cont++)
        printf("\n");
}

int main(void)
{
    int 
        q_linhas, q_colunas,
        linhas, colunas,
        opcao;
    
    apagaTela();
    
    /* Pega a quantidade de linhas */
    do {
        printf("Digite a quantidade de linhas da matriz:");
        scanf("%i%*c", &q_linhas);
        if (q_linhas < 1) {
            printf("Valor invalido!\nDigite novamente\n");
        }
    } while (q_linhas < 1);
    
    apagaTela();
    
    /* Pega a quantidade de colunas */
    do {
        printf("Digite a quantidade de colunas da matriz:");
        scanf("%i%*c", &q_colunas);
        if (q_colunas < 1) {
            printf("Valor invalido!\nDigite novamente\n");
        }
    } while (q_colunas < 1);
    
    apagaTela();
    
    char matriz[q_linhas][q_colunas][T_STR];
    
    /* Pega a matriz */
    for (linhas = 0; linhas < q_linhas; linhas++) {
        for (colunas = 0; colunas < q_colunas; colunas++) {
            printf("Digite o nome da linha e coluna [%i][%i]:", linhas, colunas);
            fgets(matriz[linhas][colunas], T_STR, stdin);
            /* Retira o caractere de nova linha da string */
            matriz[linhas][colunas][strlen(matriz[linhas][colunas])-1] = '\0';
        }
    }
    
    do {
        printf("Deseja visualizar a matriz 1\\sim 0\\não:");
        scanf("%i%*c", &opcao);
        switch (opcao) {
            case 1:
                /* Mostra a matriz */
                for (linhas = 0; linhas < q_linhas; linhas++) {
                    for (colunas = 0; colunas < q_colunas; colunas++) {
                        printf("%s, ", matriz[linhas][colunas]);
                    }
                    printf("\n");       /* Salta uma linha */
                }
                break;
            
            case 0:
                printf("Operacao finalizada!\n");
                break;
            
            default:
                printf("Opcao invalida!\n");
        }
    } while (opcao != 0);
    
    return(0);
}

exemplo online

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!