Você está na página 1de 13

Exercícios Matriz

1. Faça um algoritmo que recebe uma matriz A[6][6] e imprima a soma dos elementos da
sua diagonal principal e da sua diagonal secundária.
#include <stdio.h>
#include <math.h>
#define max 6

int main(){

int A[max][max];
int i,j,somp,soms;

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf("Digite os valores da matriz; ");
scanf("%d",&A[i][j]);

}
}

for(i=0; i<max; i++){


for(j=0; j<max; j++){
if(i==j){
somp += A[i][j];
}
}
}

for(i=0; i<max; i++){


for(j=0; j<max; j++){
if(i+j==max-1){
soms += A[i][j];
}
}
}
printf("A soma da diagonal principal é %d\n",somp);
printf("A soma da diagonal secundária é %d\n",soms);
return 0;
}

2. Faça um algoritmo que recebe uma matriz A[7][6] e imprima a soma dos elementos da
linha 5 e da coluna 3.
#include <stdio.h>
#include <math.h>
#define linha 7
#define coluna 6

int main(){

int A[linha][coluna];
int i,j,soml=0,somc=0;

for(i=0; i<linha; i++){


for(j=0; j<coluna; j++){
printf("Digite os valores da matriz; ");
scanf("%d",&A[i][j]);
}
}

for(i=0; i<linha; i++){


for(j=0; j<coluna; j++){

if(i==4){
soml += A[i][j];
}
}
}

for(i=0; i<linha; i++){


for(j=0; j<coluna; j++){

if(j==2){
somc += A[i][j];
}
}
}
printf("A soma da linha 5 é; %d\n",soml);
printf("A soma da coluna 3 é; %d\n",somc);

return 0;
}

3. Faça um algoritmo que recebe uma matriz A[6][6] e imprima o menor elemento da sua
diagonal secundária.
#include <stdio.h>
#include <math.h>
#define max 6

int main(){

int A[max][max];
int i,j;

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf("Digite os valores da matriz; ");
scanf("%d",&A[i][j]);
}
}

int menor = A[0][0];


int lin = 0, col = 0;

for(i=0; i<max; i++){


for(j=0; j<max; j++){
if(i+j == max-1){
if(A[i][j]<= menor) menor = A[i][j];
lin = i;
col = j;

}
}
}
printf("O menor valor da diagonal secundária é; %d",menor);

return 0;
}
4. Faça um algoritmo que recebe uma matriz A[8][8] e calcula o maior elemento da sua
diagonal principal. A seguir, a algoritmo deve dividir todos os elementos de A pelo maior
encontrado. O algoritmo deve imprima a matriz alterada.

#include <stdio.h>
#include <math.h>
#define max 3

int main(){

int A[max][max];
int i,j, div;

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf("Digite os valores da matriz; ");
scanf("%d",&A[i][j]);
}
}
int maior = A[0][0];
int li = 0, co = 0;

for(i=0; i<max; i++){


for(j=0; j<max; j++){
if(i==j){
if (A[i][j]>=maior) maior = A[i][j] ;
}
li = i;
co = j;
}
}

printf("O maior valor encontrado na diagonal principal da matriz é; %d\n",maior);


printf("A nova matriz gerada é; \n");
for(i=0; i<max; i++){
for(j=0; j<max; j++){
div = A[i][j]/maior;
printf(" %d",div);
}
printf("\n");
}

return 0;
}
5. Faça um algoritmo que receba duas matrizes M[6][6] e N[6][6] e imprima uma matriz C,
que seja a soma de M com N, uma matriz D e que seja a diferença de M com N.

int main(){

int M[max][max], N[max][max], C[max][max], D[max][max];


int i,j;

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf("Digite os valores da matriz M; ");
scanf("%d",&M[i][j]);
}
}

printf("\n");

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf("Digite os valores da matriz N; ");
scanf("%d",&N[i][j]);
}
}

for(i=0; i<max; i++){


for(j=0; j<max; j++){
if(M[i][j]==N[i][j]){
C[i][j]= M[i][j]+N[i][j];
}
}
}
printf("A matriz soma de M e N é; \n");

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf("%d ",C[i][j]);
}
}

printf("\n");

printf("A matriz diferença de M


e N é; \n");

for(i=0; i<max; i++){


for(j=0; j<max; j+
+){
if(M[i]
[j]==N[i][j]){
D[i]
[j]= M[i][j]-N[i][j];
}
}
}

for(i=0; i<max; i+
+){
for(j=0;
j<max; j++){

printf("%d ",D[i][j]);
}
}

return 0;
}
6. Faça um algoritmo que receba uma matriz A[10][10] e realize as seguintes trocas:
 a linha 2 com a linha 8;
 a coluna 4 com a coluna 10;
 a diagonal principal com a secundária;
 a linha 5 com a coluna 10;

A função deve imprimir a matriz alterada

#include <stdio.h>
#include <math.h>
#define max 10

int main(){

int A[max][max];
int i,j,auxl,auxc,auxd,a1;

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf("Digite os valores da matrz; ");
scanf("%d",&A[i][j]);
}
}

for(j=0; j<max; j++){


auxl = A[2][j];
A[2][j] = A[8][j];
A[8][j] = auxl;
}

for(i=0; i<max; i++){


auxc = A[i][1];
A[i][1] = A[i][2];
A[i][2] = auxc;
}

for (i = 0; i<max; i++)

auxd = A[i][i];

A[i][i] = A[i][max - i - 1];

A[i][max - i - 1] = auxd;

}
for(i=0; i<max; i++){
for(j=0; j<max; j++){
a1 = A[5][j];
A[5][j] = A[j][5];
A[j][5] = a1;
}
}

for(i = 0; i < max; i++)

for (j = 0; j < max; ++j)

printf(" %d", A[i][j]);

printf("\n");

return 0;
}
7. Na teoria dos sistemas, define-se como elemento minimax de uma matriz o menor
elemento de uma linha onde se encontra o maior elemento da matriz. Faça um algoritmo
que recebe uma matriz A[10][10] e imprime o seu elemento minimax, juntamente com a
sua posição.
#include <stdio.h>
#include <math.h>
#define max 2
int main(){

int A[max][max];
int i,j,minimax;

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf("Digite o valor da matriz; ");
scanf("%d",&A[i][j]);
}
}

printf("A matriz digitada foi; \n");

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf(" %d",A[i][j]);

}
printf("\n");
}

int maior = A[0][0];


int lin = 0, col = 0;

for(i=0; i<max; i++){


for(j=0; j<max; j++){
if(A[i][j]>maior){ maior = A[i][j];
lin = i;
col = j;

}
}
}
printf("\n");
printf("O elemento minmax da matrix é; %d \n",maior);
printf("Sua posição é linha %d e coluna %d",lin,col);
return 0;
}

8. Ler uma matriz A de duas dimensões com 7 linhas e 7 colunas. Ao final apresentar o
total de elementos pares existentes dentro da matriz.

#include <stdio.h>
#include <locale.h>
#define max 7

int main(){

int A[max][max];
int i,j, par=0;

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf("Digite os valores da matriz; ");
scanf("%d",&A[i][j]);
}
}
for(i=0; i<max; i++){
for(j=0; j<max; j++){
if(A[i][j]%2==0){
par++;
}
}
}

printf("A quantidade de números pares na matriz é; %d",par);

return 0;
}
9. Faça um algoritmo que receba uma matriz 61x10. O algoritmo deve somar
individualmente as colunas da matriz e armazenar o resultado na 61ª linha da matriz. O
algoritmo deve imprimir a matriz alterada.
#include <stdio.h>
#include <locale.h>
#define lin 3
#define col 3

int main(){

int A[lin][col];
int i,j,somc,a=0;

for(i=0; i<lin; i++){


for(j=0; j<col; j++){
printf("Digite os valores da matriz 61x10; ");
scanf("%d",&A[i][j]);
}
}

printf("A matriz digitada foi; \n");


for(i=0; i<lin; i++){
for(j=0; j<col; j++){
printf(" %d",A[i][j]);

}
printf("\n");
}

for(i=0; i<lin; i++){


while(j=0){
somc += A[i][j];
j++;
}
}

printf("%d",somc);

return 0;
}

11. Ler duas matrizes A e B de duas dimensões com 5 linhas e 5 colunas. A matriz A deve
ser formada por valores que não sejam divisíveis por 3, enquanto a matriz B deve ser
formada por elementos que não sejam divisíveis por 6. As entradas dos valores nas
matrizes devem ser validadas pelo programa e não pelo usuário. Construir e apresentar
uma matriz C de mesma dimensão e número de elementos que contenha a soma dos
elementos das matrizes A e B.
#include <stdio.h>
#include <math.h>
#define max 2

int main(){

setlocale(LC_ALL, "Portuguese");

printf("Aviso; Não são aceitos valores divisíveis por 3 na matriz A,\ne divisíveis por 6
na matriz B.\n\n");

int A[max][max], B[max][max], C[max][max];


int i,j;

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf("Digite os valores da matriz A; ");
scanf("%d",&A[i][j]);
if(A[i][j]%3==0){
printf("Valor digitado não aceito. Reinicie o
programa.");
return 0;
}
}

}
printf("\n");

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf("Digite os valores da matriz B; ");
scanf("%d",&B[i][j]);
if(B[i][j]%6==0){
printf("Valor digitado não aceito. Reinicie o
programa.");
return 0;
}

}
}

for(i=0; i<max; i++){


for(j=0; j<max; j++){
if(A[i][j] == B[i][j]){
C[i][j] = A[i][j] + B[i][j];
}

for(i=0; i<max; i++){


for(j=0; j<max; j++){
printf(" %d", C[i][j]);

}
printf("\n");
}

return 0;
}

Você também pode gostar