Baixe o app para aproveitar ainda mais
Prévia do material em texto
1.1. Escreva um programa que leia uma matriz A6x3 com números inteiros e exiba o maior e o menor elementos. #include<stdio.h> int main (void) { int matriz[6][3],i,j,maior,menor; for(i=0;i<6;i++) { for(j=0;j<3;j++) { printf("Linha %d Coluna %d\t:",i+1,j+1); scanf("%d",&matriz[i][j]); if(i==0 && j==0) { maior=matriz[i][j]; menor=matriz[i][j]; } if(matriz[i][j]>maior) { maior=matriz[i][j]; } if(matriz[i][j]<menor) { menor=matriz[i][j]; } } } printf("Maior elemento:%d Menor elemento:%d",maior,menor); return 0; } 1.2) Criar um programa que leia os elementos de uma matriz inteira 4 x 4 e escreva os elementos da diagonal principal. #include<stdio.h> int main (void) { int matriz [4][4],i,j; printf("Digite os elementos da matriz:\n"); for(i=0;i<4;i++) { for(j=0;j<4;j++) { printf("Digite o elemento da coluna:%d linha:%d",i+1,j+1); scanf("%d",&matriz[i][j]); } } printf("Elementos da diagonal principal:"); for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(i==j) { printf("%d,",matriz[i][j]); } } } return 0; } 1.3) Criar um programa que leia os elementos de uma matriz inteira 4 x 4 e escreva os elementos da diagonal secundária. #include<stdio.h> int main (void) { int matriz[4][4],i,j; printf("Digite os elementos da matriz:\n"); for(i=0;i<4;i++) { for(j=0;j<4;j++) { printf("Digite o elemento da linha:%d coluna:%d\t",i+1,j+1); scanf("%d",&matriz[i][j]); } } printf("Elementos da diagonal secundaria:\n"); for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(i==4-1-j) { printf("%d,",matriz[i][j]); } } } return 0; } 1.4) Criar um programa que leia os elementos de uma matriz inteira 4 x 4 e escreva todos os elementos, exceto os elementos da diagonal principal. #include<stdio.h> int main (void) { int matriz[4][4],i,j; printf("Digite os elementos da matriz:\n"); for(i=0;i<4;i++) { for(j=0;j<4;j++) { printf("Digite o elemento da linha:%d e coluna:%d\t",i+1,j+1); scanf("%d",&matriz[i][j]); } } for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(i!=j) { printf(" %d, ",matriz[i][j]); } } printf(" \n"); } return 0; } 1.5 Criar um programa que leia os elementos de uma matriz inteira 4 x 4 e escreva todos os elementos, exceto os elementos da diagonal secundária. #include<stdio.h> int main (void) { int matriz[4][4],i,j; printf("Digite os elementos da matriz:\n"); for(i=0;i<4;i++) { for(j=0;j<4;j++) { printf("Digite o elemento da linha:%d coluna:%d\t",i+1,j+1); scanf("%d",&matriz[i][j]); } } printf("Elementos da diagonal secundaria:\n"); for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(i!=4-1-j) { printf("%d,",matriz[i][j]); } } printf("\n"); } return 0; } 1.6 Criar um programa que leia os elementos de uma matriz A3x5. Em seguida, o programa deve gerar e imprimir um vetor onde cada elemento do vetor é a soma dos elementos de uma linha da matriz A. #include<stdio.h> int main (void) { int matriz [3][5],i,j,soma=0; int vetor[3],p=0; printf("Digite os elementos da matriz:\n"); for(i=0;i<3;i++) { soma=0; for(j=0;j<5;j++) { printf("\nDigite o elememnto da linha %d coluna %d:",i+1,j+1); scanf("%d",&matriz[i][j]); soma=soma+matriz[i][j]; } vetor[p]=soma; p++; } for(i=0;i<3;i++) { printf("\nSoma da %d linha vale:%d",i+1,vetor[i]); } return 0; } ok 7 Crie um programa que leia uma matriz A3x2 e uma matriz B2x5, calcule o produto, armazenando numa matriz C, apresentando-a na tela. #include<stdio.h> #include<stdlib.h> int main () { int matrizA[3][2]; int matrizB[2][5]; int matrizC[3][5]; int h; int i,j,k,l; printf("Digite os elementos da matriz A:\n\n "); for(i=0;i<3;i++) { for(j=0;j<2;j++){ printf("Elemento da linha %d e coluna %d: ", i+1,j+1); scanf("%d", &matrizA[i][j]); } } printf("\nMatriz A digitada:\n"); for(i = 0; i < 3; i++) { for(j = 0; j < 2; j++) { printf("%d ", matrizA[i][j]); } printf("\n"); } printf("\n"); printf("Digite os elementos da matriz B:\n\n "); for(k=0;k<2;k++) { for(l=0;l<5;l++){ printf("Elemento da linha %d e coluna %d: ", k+1,l+1); scanf("%d", &matrizB[k][l]); } } printf("\nMatriz B digitada:\n"); for(k = 0; k < 2; k++) { for(l = 0; l < 5; l++) { printf("%d ", matrizB[k][l]); } printf("\n"); } printf("\n"); for (i = 0; i < 3; i++){ for (j = 0; j < 5; j++){ matrizC[i][j] = 0; for (h = 0; h < 2; h++){ matrizC[i][j] = matrizC[i][j] + matrizA[i][h] * matrizB[h][j]; } } } printf("Matriz A X B: \n"); for (i = 0; i < 3; i++) { for (j = 0; j < 5; j++){ } } for(i = 0; i < 3; i++) { for(j = 0; j < 5; j++) { printf("%d ", matrizC[i][j]); } printf("\n"); } return 0; } ok 8 Escreva um programa que leia uma matriz A3x3 e calcule o seu determinante. #include<stdio.h> #include<stdlib.h> int main () { int matrizA[3][3]; int i,j,k; int temp,count,factor; printf("Digite a matriz: "); for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("elemento da linha %d e coluna %d: ", i+1,j+1); scanf("%d", &matrizA[i][j]); printf("\n"); } } printf("\nMatriz digitada:\n"); for(i = 0; i < 3; i++) { for(j = 0; j < 3; j++) { printf("%d ", matrizA[i][j]); } printf("\n"); } for(i = 0; i < 3 - 1; i++) { if(matrizA[i][i] == 0) { for(k = i; k < 3; k++) { if(matrizA[k][i] != 0) { for(j = 0; j < 3; j++) { temp = matrizA[i][j]; matrizA[i][j] = matrizA[k][j]; matrizA[k][j] = temp; } k = 3; } } count++; } if(matrizA[i][i] != 0) { for(k = i + 1; k < 3; k++) { factor = -1.0 * matrizA[k][i] / matrizA[i][i]; for(j = i; j < 3; j++) { matrizA[k][j] = matrizA[k][j] + (factor * matrizA[i][j]); } } } } temp = 1.0; for(i = 0; i < 3; i++) temp *= matrizA[i][i]; printf("\nDeterminante:\n"); if(count % 2 == 0) printf("%d \n", temp); else printf("%d \n", -1.0 * temp); return 0; } ok 9 Escreva um programa que leia uma matriz A3x3 e calcule a sua inversa. #include <stdio.h> #include <math.h> int main (void){ int matrizA[3][3],matrizB[3][3],Cof[3][3],Adj[3][3]; int i,j,k; float det,temp; for (i=0;i<3;i++){ for (j=0;j<3;j++){ printf("Informe a matriz da linha%d e coluna %d: ", i+1,j+1); scanf("%d",&matrizA[i][j]); } printf("\n"); } printf(" A matriz digitada foi: \n\n"); for (i=0;i<3;i++){ for (j=0;j<3;j++){ printf("%d", matrizA[i][j]); } printf("\n"); } j = 0; det = 0; temp = 0; for (i=0;i<3;i++){ if (i == 0){ temp = pow(-1,(i+j+2))*(matrizA[i+1][j+1]*matrizA[i+2][j+2]-matrizA[i+1][j+2]*matrizA[i+2][j+1]); } if (i == 1){ temp = pow(-1,(i+j+2))*(matrizA[i-1][j+1]*matrizA[i+1][j+2]-matrizA[i-1][j+2]*matrizA[i+1][j+1]); } if (i==2) { temp = pow(-1,(i+j+2))*(matrizA[i-2][j+1]*matrizA[i-1][j+2]-matrizA[i-2][j+2]*matrizA[i-1][j+1]); } det+=matrizA[i][j]*temp; } printf("O determinante da matriz A eh: %d\n",det); if (det == 0) { printf("A matriz não possui inversa, pois seu determinante é nulo!\n"); } else { for (i=0;i<3;i++){ for (j=0;j<3;j++){ if (i==0 && j==0) Cof[i][j] = pow(-1,(i+j+2))*(matrizA[i+1][j+1]*matrizA[i+2][j+2]-matrizA[i+1][j+2]*matrizA[i+2][j+1]); if (i==0 && j==1) Cof[i][j] = pow(-1,(i+j+2))*(matrizA[i+1][j-1]*matrizA[i+2][j+1]-matrizA[i+1][j+1]*matrizA[i+2][j-1]); if (i==0 && j==2) Cof[i][j] = pow(-1,(i+j+2))*(matrizA[i+1][j-2]*matrizA[i+2][j-1]-matrizA[i+1][j-1]*matrizA[i+2][j-2]); if (i==1 && j==0) Cof[i][j] = pow(-1,(i+j+2))*(matrizA[i-1][j+1]*matrizA[i+1][j+2]-matrizA[i-1][j+2]*matrizA[i+1][j+1]); if (i==1 && j==1) Cof[i][j] = pow(-1,(i+j+2))*(matrizA[i-1][j-1]*matrizA[i+1][j+1]-matrizA[i-1][j+1]*matrizA[i+1][j-1]); if (i==1 && j==2) Cof[i][j] = pow(-1,(i+j+2))*(matrizA[i-1][j-2]*matrizA[i+1][j-1]-matrizA[i-1][j-1]*matrizA[i+1][j-2]); if (i==2 && j==0) Cof[i][j] = pow(-1,(i+j+2))*(matrizA[i-2][j+1]*matrizA[i-1][j+2]-matrizA[i-2][j+2]*matrizA[i-1][j+1]); if (i==2 && j==1) Cof[i][j] = pow(-1,(i+j+2))*(matrizA[i-2][j-1]*matrizA[i-1][j+1]-matrizA[i-2][j+1]*matrizA[i-1][j-1]); if (i==2 && j==2) Cof[i][j] = pow(-1,(i+j+2))*(matrizA[i-2][j-2]*matrizA[i-1][j-1]-matrizA[i-2][j-1]*matrizA[i-1][j-2]); Adj[j][i]= Cof[i][j]; matrizB[j][i] = (Adj[j][i])/det; } } printf("\n A matriz inversa calculada eh: \n"); for (i=0;i<3;i++){ for (j=0;j<3;j++){ printf("%d ",matrizB[i][j]); } printf("\n"); } } return 0; } ok 10 Criar um programa que leia uma matriz ANxN (N < 10) e calcule a respectiva matriz transposta At . #include<stdio.h> int main (void) { int n,i,j; printf("Digite o valor de N menor do que 10."); scanf("%d",&n); int matriz[n][n]; if(n>=10) { printf("N invalido."); } else { printf("Digite os elementos da matriz:\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("Linha %d coluna %d\t:",i+1,j+1); scanf("%d",&matriz[i][j]); } } printf("Matriz transposta:\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%d,",matriz[j][i]); } printf("\n"); } } return 0; } ok 11 Criar um programa que leia uma matriz ANxN (N < 10) e verifique (informe) se tal matriz é ou não simétrica (At = A). #include<stdio.h> int main () { int n,i,j; printf("Digite o valor da ordem da matriz:"); scanf("%d",&n); if(n>=10) { printf("Quantidade invalida."); } else { int matriz[n][n],d=0; int transposta[n][n]; for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("\nLinha %d Coluna %d\t:",i+1,j+1); scanf("%d",&matriz[i][j]); transposta[j][i]= matriz[i][j]; } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(matriz[i][j]!=transposta[i][j]) { d++; } } } if(d>0) printf("\nNao e simetrico"); else printf("\nsimetrico"); } return 0; } ok 12 Criar um programa que leia uma matriz ANxN (N < 10) e verifique (informe) se tal matriz é ou não anti-simétrica (At = -A). #include<stdio.h> int main () { int n,i,j; printf("Digite o valor da ordem da matriz:"); scanf("%d",&n); if(n>=10) { printf("Quantidade invalida."); } else { int matriz[n][n],d=0,soma=0; int transposta[n][n]; for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("\nLinha %d Coluna %d\t:",i+1,j+1); scanf("%d",&matriz[i][j]); transposta[j][i]= matriz[i][j]; } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { soma=0; soma=transposta[i][j]+matriz[i][j]; if(soma!=0) { d++; } } } if(d>0) printf("\nNao e anti-simetrica"); else printf("\nanti-simetrico"); } return 0; } ok 13 Uma matriz quadrada inteira é chamada de quadrado mágico se as somas dos elementos de cada linha, coluna, e das diagonais principal e secundária são iguais. Escreva um programa que leia uma matriz A3x3 e exiba uma mensagem na tela dizendo se ela é ou não um quadrado mágico. #include <stdio.h> #include <stdlib.h> int main(void) { int mat[3][3], i, j; int lin[3]={0,0,0}, col[3]={0,0,0}, dg[2]={0,0}; for(i=0;i<3;i++) { for(j=0;j<3;j++) { scanf("%d", &mat[i][j]); } } for(i=0;i<3;i++) { dg[0]+=mat[i][i]; dg[1]+=mat[i][2-i]; for(j=0;j<3;j++) { lin[i]+=mat[i][j]; col[j]+=mat[i][j]; } } if(dg[0]==dg[1]) { if(lin[0]==lin[1] && lin[2]) { if(col[0]==col[1] && col[1]==col[2]) { printf("sim"); } else { printf("nao"); } } else { printf("nao"); } } else { printf("nao"); } return 0; } ok 14 Criar um programa que entre com valores inteiros para uma matriz M3x3 e imprima a matriz final, conforme mostrado a seguir: | 1 2 3 | | 7 4 1 | | 4 5 6 | a matriz gira 90º | 8 5 2 | | 7 8 9 | | 9 6 3 | #include<stdio.h> int main (void) { int matriz [3][3],i,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) { scanf("%d",&matriz[i][j]); } } printf("\n"); for (i=2;i>=0;i--) { printf("%d ",matriz[i][0]); } printf("\n"); for (i=2;i>=0;i--) { printf("%d ",matriz[i][1]); } printf("\n"); for (i=2;i>=0;i--) { printf("%d ",matriz[i][2]); } return 0; } 0k 15 Criar um programa que entre com valores inteiros para uma matriz M3x3 e imprima a matriz final, conforme mostrado a seguir: | 1 2 3 | | 9 8 7 | | 4 5 6 | a matriz gira 180º | 6 5 4 | | 7 8 9 || 3 2 1 | #include<stdio.h> int main(void) { int matriz[3][3],i,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) { scanf("%d",&matriz[i][j]); } } printf("\n"); for(i=2;i>=0;i--) { for(j=2;j>=0;j--) { printf("%d ",matriz[i][j]); } printf("\n"); } return 0; } ok 16 Criar um programa que entre com valores inteiros para uma matriz M3x3 e imprima a matriz final, conforme mostrado a seguir: | 1 2 3 | | 3 6 9 | | 4 5 6 | a matriz gira 270º | 2 5 8 | | 7 8 9 | | 1 4 7 | #include<stdio.h> int main (void) { int matriz[3][3] ,i ,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) { scanf("%d",&matriz[i][j]); } } printf("\n"); for(i=0;i<3;i++) { printf("%d ",matriz[i][2]); } printf("\n"); for(i=0;i<3;i++) { printf("%d ",matriz[i][1]); } printf("\n"); for(i=0;i<3;i++) { printf("%d ",matriz[i][0]); } return 0; } ok 17 Criar um algoritmo que carregue uma matriz 12 x 4 com os valores das vendas de uma loja, em que cada linha represente um mês do ano, e cada coluna, uma semana do mês. Para fins de simplificação considere que cada mês possui somente 4 semanas. Calcule e imprima: - Total vendido em cada mês do ano; - Total vendido em cada semana durante todo o ano; - Total vendido no ano. #include<stdio.h> int main (void) { float matriz[12][4],soma,soma2=0,vetor[48]; int i,j,p=1; for(i=0;i<12;i++) { soma=0; for(j=0;j<4;j++) { printf("Mes %d Semana %d\t:",i+1,j+1); scanf("%f",&matriz[i][j]); vetor[p]=matriz[i][j]; soma=soma+matriz[i][j]; p++; } vetor[p]=soma; p++; } for(i=1;i<p;i++) { if(i%5!=0) { printf("\nValor vendido na semana %d foi:%.2f",i,vetor[i]); } if(i%5==0) { printf("\nTotal do mes:%.2f\n",vetor[i]); soma2=soma2+vetor[i]; } } printf("\n\nTotal no ano:%.2f",soma2); return 0; } ok 18 Uma matriz M contém na 1ª coluna a matrícula do aluno no curso; na 2ª coluna, o sexo (0 para feminino e 1 para masculino); na 3ª, o código do curso, e na 4ª, o CR (Coeficiente de Rendimento). Suponha que o CR é um número inteiro. Faça um programa que leia os dados de 10 alunos e armazene esses dados na matriz M. Um grupo empresarial resolveu premiar a aluna com CR mais alto de um curso cujo código deverá ser digitado. O programa deve receber o código do curso e imprimir a matrícula da aluna que deve ser premiada. Caso existam mais de uma aluna com o CR mais alto, imprimir a matrícula de todas elas. #include<stdio.h> #include<math.h> int main(void) { int aluno[10][4],setp[10]; int i,j,cod,notar,q_nota_ref; printf("Carregue os dados dos 10 alunos [matricula, sexo, cod_curso, CR]:\n"); for (i=0;i<10;i++) { for (j=0;j<4;j++) { scanf("%d",&aluno[i][j]); } } printf("\nDigite o codigo do curso do qual deseja saber a melhor aluna: "); scanf("%d",&cod); notar = 0; q_nota_ref = 0; for (i=0;i<10;i++) { if (aluno[i][2]==cod) { if(aluno[i][1]==0) { if (aluno[i][3] == notar && notar != 0) { q_nota_ref+=1; setp[q_nota_ref] = aluno[i][0]; } if (aluno[i][3] > notar) { notar = aluno[i][3]; q_nota_ref = 0; setp[q_nota_ref] = aluno[i][0]; } } } } printf("Matricula da(s) melhor aluna do curso %d: ",cod); for (i=0;i<=q_nota_ref;i++) printf("Matricula = %d\n",setp[i]); }
Compartilhar