Ir ao conteúdo

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


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

Posts recomendados

Postado

 

#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
  • Solução
Postado
#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
Postado

@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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!