Hoje, no exercício 14, vamos fazer um programa para imprimir apenas os valores abaixo da diagonal principal de uma matriz N x N com a linguagem C.
14) Faça um programa que imprima na tela apenas os valores abaixo da diagonal principal de uma matriz 4 x 4.
Normalmente é tarefa de um programador observar o problema que ele está tentando resolver em busca de alguma informação útil que lhe ajude a solucionar o problema. É o que acontece neste caso aqui.
Ao rabiscar uma matriz quadrada (número de linhas igual ao número de colunas) no papel e avaliar os índices de linha e coluna para cada elemento, percebemos que:
– os elementos da diagonal principal possuem índices de linha e coluna iguais;
– os elementos abaixo da diagonal principal possuem o índice da linha maior que o índice da coluna, e;
– os elementos acima da diagonal principal possuem o índice da linha menor que o índice da coluna.
Com esta informação, está resolvido o problema rsrsrs. Precisamos apenas fazer duas repetições para percorrer nossa matriz e, em cada posição, verificar se o índice da linha é maior que o índice da coluna.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int tam = 10;
int l, c, mat[tam][tam];
srand(time(NULL));
for(l = 0; l < tam; l++){
for(c = 0; c < tam; c++)
mat[l][c] = rand() % 100;
}
printf("\n\nMatriz gerada:\n");
for(l = 0; l < tam; l++){
for(c = 0; c < tam; c++)
printf("%2d ", mat[l][c]);
printf("\n");
}
printf("\n\nAbaixo da diagonal principal:\n");
for(l = 0; l < tam; l++){
for(c = 0; c < tam; c++){
if(l > c)
printf("%2d ", mat[l][c]);
else
printf(" ");
}
printf("\n");
}
printf("\n\n");
return 0;
}
