Ir ao conteúdo
  • Cadastre-se

Exercício de matrizes - Ajuda!


Posts recomendados

Olá a todos, sou novo nas artes da programação. Estou com problemas no seguinte exercício:

 

     A   B   C   D   E  F  G

A  XX 02 11 06 15 11 01

B  02 XX 07 12 04 02 15

C  11 07 XX 11 08 03 13

D  06 12 11 XX 10 02 01

E  15 04 08 10 XX 05 13

F  11 02 03 02 05 XX 14

G  01 15 13 01 13 14 XX

 

"Elabore um algoritmo que imprima a tabela sem repetições (apenas o triângulo superior ou o triângulo inferior)"

 

 

Eu consegui fazer isso, mas manualmente e o não consigo exibir numa forma de matriz, aparece tudo um do lado do outro. Segue a baixo meu algoritmo:

 

#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
using namespace std;
int main(void)
{
setlocale(LC_ALL, "Portuguese");
int L,C,M[8][8],DP;
/* int a,b,c,d,e,f,g,h;
h=1;*/
for(L=1;L<8;L++)
for(C=1;C<8;C++)
{
cout<<"Insira o numero da "<< L<<" linha e "<< C<<" coluna \n";
cin>> M[L][C];
}
cout<<"\n\n Distâncias: \n";
//r (L=1;L<=7;L++)
//
//for (C=1;C<=7;C++)
cout<< M[1][1] <<" "
<< M[2][1] <<" "
<< M[3][1] <<" "
<< M[4][1]<<" "
<< M[5][1]<<" "
<< M[6][1]<<" "
<< M[7][1]<<" "
<< M[2][2]<<" "
<< M[3][2]<<" "
<< M[4][2]<<" "
<< M[5][2]<<" "
<< M[6][2]<<" "
<< M[7][2]<<" "
<< M[3][3]<<" "
<< M[4][3]<<" "
<< M[5][3]<<" "
<< M[6][3]<<" "
<< M[7][3]<<" "
<< M[4][4]<<" "
<< M[5][4]<<" "
<< M[6][4]<<" "
<< M[7][4]<<" "
<< M[5][5]<<" "
<< M[6][5]<<" "
<< M[7][5]<<" "
<< M[6][6]<<" "
<< M[7][6]<<" "
<< M[7][7]
            <<" ";
cout<<"\n";
 
 
getch();
return 0;
}
 
 
 
 
Queria fazer a impressão do triângulo superior da matriz com o laço for, mas não faço ideia como fazer. Me ajudem, valeu...

 

Link para o comentário
Compartilhar em outros sites

Desculpa eu nao poder explicar, pois nao sei nada sobre C++, estou aprendendo o basico de C ainda, só alterei a logica do seu programa sem mudar muito o codigoEsse codigo imprime o triangulo superior sem as partes com XX do seu exempo.#include<iostream>#include<conio.h>#include<stdlib.h>#include<stdio.h>#include<math.h>using namespace std;int main(void){setlocale(LC_ALL, "Portuguese");int L,C,M[8][8],DP;/* int a,b,c,d,e,f,g,h;h=1;*/for(L=1;L<8;L++)for(C=1;C<8;C++){cout<<"Insira o numero da "<< L<<" linha e "<< C<<" coluna \n";cin>> M[L][C];}cout<<"\n\n Distâncias: \n";//r (L=1;L<=7;L++)////for (C=1;C<=7;C++)for(L=1;L<8;L++){    for(C=1;C<8;C++)        if(C>=L)            cout<<M[L][C]<<" ";        else            cout<<"  ";        cout<<"\n";}  /*cout<< M[1][1]<<" "<< M[2][1]<<" "<< M[3][1]<<" "<< M[4][1]<<" "<< M[5][1]<<" "<< M[6][1]<<" "<< M[7][1]<<" "<< M[2][2]<<" "<< M[3][2]<<" "<< M[4][2]<<" "<< M[5][2]<<" "<< M[6][2]<<" "<< M[7][2]<<" "<< M[3][3]<<" "<< M[4][3]<<" "<< M[5][3]<<" "<< M[6][3]<<" "<< M[7][3]<<" "<< M[4][4]<<" "<< M[5][4]<<" "<< M[6][4]<<" "<< M[7][4]<<" "<< M[5][5]<<" "<< M[6][5]<<" "<< M[7][5]<<" "<< M[6][6]<<" "<< M[7][6]<<" "<< M[7][7]<<" ";cout<<"\n";*/getch();return 0;}

Se quiser que imprima os XX também é só colocar um sinal de = no if:

 

 

for(L=1;L<8;L++){

    for(C=1;C<8;C++)
        if(C>=L)
            cout<<M[L][C]<<" ";
        else
            cout<<"  ";
        cout<<"\n";
}
Link para o comentário
Compartilhar em outros sites

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!