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; }