Faça uma função que verifica se uma matriz quadrada de ordem N é a matriz identidade.

Passo 1

Resumo: a função deve receber como entrada uma matriz quadrada de ordem N e retornar verdadeiro se ela for a matriz identidade, isto é, todos os elementos da diagonal principal iguais a 1 e todos os demais iguais a 0.

Passo 2

Entender a propriedade de matriz identidade: para cada índice de linha i e coluna j, se i=j então o elemento deve ser 1; caso contrário, deve ser 0.

Passo 3

Estruturar os laços de repetição: usar dois loops aninhados para percorrer todas as posições (i,j) da matriz, variando i de 0 a N-1 e j de 0 a N-1.
Dentro do loop aninhado, aplicar a verificação condicional:
— Se i == j: testar se A[i][j] != 1. Se for diferente, retornar falso imediatamente.
— Se i != j: testar se A[i][j] != 0. Se for diferente, retornar falso imediatamente.

Passo 4

Se todos os testes passarem (nenhuma condição de retorno falso for acionada), retornar verdadeiro ao final.

Resposta

// Função em C que verifica se uma matriz quadrada A de ordem N é identidade
#include <stdbool.h>
bool ehIdentidade(int A[][N], int N) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (i == j) {
if (A[i][j] != 1) {
return false; // diagonal principal deve ser 1
}
} else {
if (A[i][j] != 0) {
return false; // fora da diagonal deve ser 0
}
}
}
}
return true; // passou em todos os testes, é identidade
}

Exercícios relacionados