Laboratório 2A
Exercício 1 – Maior elemento de cada linha
Considere uma matriz de números inteiros com n_linhas linhas e n_colunas colunas. Escreva uma função que encontre o maior elemento de cada linha da matriz.
Os maiores elementos devem ser armazenados no vetor maiores, de modo que maiores[i] contenha o maior elemento da linha i da matriz.
Função a implementar
void maiores_linhas(int matriz[][100], int n_linhas, int n_colunas,
int maiores[]);Considere que 1 <= n_linhas <= 100 e 1 <= n_colunas <= 100. O vetor maiores terá espaço suficiente para armazenar n_linhas elementos.
A matriz usada pelo CodeRunner terá sempre 100 colunas alocadas. Entretanto, apenas as primeiras n_colunas posições de cada linha fazem parte da matriz considerada no exercício.
Sua função não deve modificar a matriz.
Exemplo
Considere a matriz com 3 linhas e 4 colunas:
3 -2 8 5
7 7 1 4
-3 -10 -5 -1
Após a chamada da função, o vetor maiores deverá conter:
8 7 -1
O CodeRunner será responsável por criar a matriz, criar o vetor maiores e chamar a função. Portanto, envie apenas a implementação de maiores_linhas, sem uma função main.
Exercício 2 – Vizinhos em uma matriz
Considere uma matriz contendo apenas os valores 0 e 1. Para uma posição (lin, col) da matriz, chamaremos de vizinhos as posições imediatamente ao redor dela, na horizontal, na vertical ou na diagonal.
Por exemplo, uma posição que não está na borda da matriz pode ter até 8 vizinhos:
* * *
* X *
* * *
A posição marcada com X é a posição (lin, col), e as posições marcadas com * são seus vizinhos.
Uma posição na borda ou em um canto da matriz possui menos vizinhos. Devem ser consideradas apenas posições que pertencem à matriz. A própria posição (lin, col) não é considerada sua vizinha.
Escreva uma função que conte quantos vizinhos da posição (lin, col) contêm o valor 1.
Função a implementar
int conta_vizinhos(int matriz[][100], int n_linhas, int n_colunas,
int lin, int col);Considere que:
1 <= n_linhas <= 100;1 <= n_colunas <= 100;0 <= lin < n_linhas;0 <= col < n_colunas;- todos os elementos considerados da matriz são
0ou1.
A matriz usada pelo CodeRunner terá sempre 100 colunas alocadas. Entretanto, apenas as primeiras n_colunas posições de cada linha fazem parte da matriz considerada no exercício.
A função deve retornar a quantidade de vizinhos de (lin, col) que contêm o valor 1. Sua função não deve modificar a matriz.
Exemplo 1
Considere a matriz:
1 0 1 0
0 1 1 0
1 0 0 1
Para a posição (1, 1), os vizinhos que contêm 1 estão nas posições (0, 0), (0, 2), (1, 2) e (2, 0). Portanto:
conta_vizinhos(matriz, 3, 4, 1, 1)deve retornar:
4
Exemplo 2
Para a mesma matriz, a posição (0, 0) possui apenas três vizinhos válidos: (0, 1), (1, 0) e (1, 1). Apenas (1, 1) contém 1. Portanto:
conta_vizinhos(matriz, 3, 4, 0, 0)deve retornar:
1
O CodeRunner será responsável por criar a matriz e chamar a função. Portanto, envie apenas a implementação de conta_vizinhos, sem uma função main.