aula 124

Exercício 14 | Imprima apenas os valores abaixo da diagonal principal de uma matriz N x N

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

Deixe um comentário

18 − 10 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.