Logo Passei Direto
Buscar

Exercícios Matrizes em C

User badge image
lola silva

em

Ferramentas de estudo

Questões resolvidas

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Prévia do material em texto

Lista de Exercícios— Computação 1 Profa. Myriam
GABARITO da Lista de Exercícios - Matrizes
ATENÇÃO!!!!
É PROIBIDA a declaração automática (estática) das matrizes com VARIÁVEL nas DIMENSÕES.
Apenas utilize constantes ou macros (constantes nomeadas).
1
2 int mat [4][5]; OK !!!
3
4 # define L 4
5 # define C 5
6 int mat[L][C]; OK !!!
7
8 int totLin ,totCol , mat[ totLin ][ totCol ]; PROIBIDO !!!!
1. Implemente um programa em C que preencha com valores aleatórios uma matriz de dimensão 5� 7, imprima a matriz
gerada e depois sua transposta. Os elementos da matriz devem ser valores inteiros gerados no inetervalo de 0 a 25.
1 #include 
2 #include 
3 #include 
4
5 # define TAML 5
6 # define TAMC 7
7 # define LIM 25
8
9
10
11 int main ()
12 {
13 int m[TAML ][ TAMC ];
14 int i, j;
15
16 // inicialização da semente do gerador de nros aleatorios
17 srand (time(NULL));
18
19 // preenche Matriz com valores aleatorios (0 a LIM -1)
20 for(i=0; i
2 #include 
3 #include 
4
5 # define N 6
6 # define LIMi 10
7 # define LIMs 25
8
9
10
11 int main ()
12 {
13 int m[N][N];
14 int i, j;
15
16 // inicializacao da semente do gerador de nros aleatorios
17 srand (time(NULL));
18
19 // preenche Matriz com valores aleatorios (10 a 25)
20 for(i=0; i
2 #include 
3
4 # define NLIN 10
5 # define NCOL 10
6
7
8 int main ()
9 {
10 int i,j, matriz [NLIN ][ NCOL], maior , minMax , lin , col;
11
12 // preenche a matriz com valores aleatorios (1 a 9)
13 for(i=0; i maior )
33 {
34 maior = matriz [i][j];
35 lin = i;
36 }
37 }
38 }
39 // acha o menor elemento da linha lin da matriz
40 minMax = maior ;
41 for (j = 0; j 
2 #include 
3 #include 
4
5 # define TAM 3
6
7 int main ()
8 {
9 /*
10 int matriz [TAM ][ TAM ];
11 srand (time(NULL));
12 preencheMatriz (matriz , 3, 3, 2);
13 */
14
15 int matriz [TAM ][ TAM] = {{8 , 0, 7} ,{4 , 5, 6} ,{3 , 10, 2}};
16 int i, j,
17 somaLinha ,
18 somaColuna ,
19 somaDiagSec ,
20 valorReferencia = 0,
21 ehQmag =1;
22
23 // imprimeMatriz
24 for(i=0; i
2 #include 
3
4 # define NLIN 10
5 # define NCOL 10
6
7 int preencheMatriz (int m[][ NCOL], int nl , int nc , int lim);
8 void imprimeMatriz (int m[][ NCOL], int nl , int nc , char qualMatriz );
9 void operaMatrizes (int m1 [][ NCOL], int m2 [][ NCOL], char operacao , int mResult [][ NCOL], int nl , int nc);
10
11 int main ()
12 {
13 int matriz1 [NLIN ][ NCOL], matriz2 [NLIN ][ NCOL], mResult [NLIN ][ NCOL], opcao , inicMat1 =0, inicMat2 =0;
14 srand (time(NULL));
15
16 do{
17 printf (" Entre com a opcao desejada :\n(0) Criar aleatoriamente as duas matriz \n(1) Imprimir as matrizes
originais \n(2) Somar as matrizes \n(3) Subtrair a primeira da segunda \n(4) multiplicar uma constante aa
primeira matriz \n( -1) Sair do Programa \n");
18 scanf ("%d" ,& opcao );
19 if( opcao ==0){
20 inicMat1 = preencheMatriz (matriz1 , NLIN , NCOL , 9);
21 inicMat2 = preencheMatriz (matriz2 , NLIN , NCOL , 9);
22 }
23 else if ( opcao ==1 || opcao ==2 || opcao ==3 || opcao ==4){
24 if( inicMat1 && inicMat2 )
25 {
26 if( opcao ==1)
27 {
28 imprimeMatriz (matriz1 , NLIN , NCOL , ’1’);
29 imprimeMatriz (matriz2 , NLIN , NCOL , ’2’);
30 }
31 else if( opcao ==2)
32 {
33 operaMatrizes (matriz1 , matriz2 , ’+’, mResult , NLIN , NCOL);
34 imprimeMatriz (mResult, NLIN , NCOL , ’+’);
35 }
36 else if( opcao ==3)
37 {
38 operaMatrizes (matriz1 , matriz2 , ’-’, mResult , NLIN , NCOL);
39 imprimeMatriz (mResult , NLIN , NCOL , ’-’);
40 }
41 else if( opcao ==4)
42 { // essa solucao usa somente funcao operaMatrizes que faz k*m1 + m2
43 preencheMatriz (mResult , NLIN , NCOL , 1);// gera uma matriz preenchida com valores 1
44 operaMatrizes (mResult , mResult , ’-’, mResult , NLIN , NCOL);// essas duas operacoes são
so para gerar uma matriz nula (sem precisar criar uma nova funcao )
45 operaMatrizes (matriz1 , mResult , ’k’, mResult , NLIN , NCOL);//a matriz nula nao altera
o resultado de m1*k
46 imprimeMatriz (mResult , NLIN , NCOL , ’k’);
47 }
48 }
49 else
50 {
51 printf ("Erro !!! Matrizes nao inicializadas \n");
52 printf (" Escolha opcao (0) primeiro !!!\n");
53 }
54 }
55 else if ( opcao == -1) printf ("Fim do programa \n");
56 else printf (" opcao invalida \n");
57 } while ( opcao != -1);
58 return 0;
59 }
60 int preencheMatriz (int m[][ NCOL], int nl , int nc , int lim){
61 int i, j, inic =0;
62
63 for(i=0; i
2 #include 
3 #include 
4
5 # define TAML 5
6 # define TAMC 7
7 # define LIM 25
8
9 void preencheMatriz (int m[][ TAMC], int nl , int nc , int num);
10 void imprimeMatriz (int m[][ TAMC], int nl , int nc , char tipo);
11
12
13 int main ()
14 {
15 int m[TAML ][ TAMC ];
16
17
18 // inicialização da semente do gerador de nros aleatorios
19 srand (time(NULL));
20 preencheMatriz (m, TAML , TAMC , LIM); // observe que podemos passar valores de nl e nc diferentes ( menores ) que
NLIN e NCOL
21
22 printf ("\n\ nMatriz original : \n");
23 imprimeMatriz (m, TAML , TAMC , ’m’);
24
25 printf ("\n\ nTransposta : \n");
26 imprimeMatriz (m, TAML , TAMC , ’t’);
27
28 return 0;
29 }
30
31
32 void preencheMatriz (int m[][ TAMC], int nl , int nc , int num)
33 {
34 int i, j;
35
36 for(i=0; i
2 #include 
3 #include 
4
5 # define N 6
6 # define LIMi 10
7 # define LIMs 25
8
9 void geraMatTriangInf (int m[][N], int n);
10 void imprimeMatTriangInf (int m[][N], int n);
11
12 int main ()
13 {
14 int mat[N][N];
15
16 // inicializacao da semente do gerador de nros aleatorios
17 srand (time(NULL));
18
19 // chama funcao que preenche Matriz com valores aleatorios (10 a 25)
20 geraMatTriangInf (mat , N);
21
22 // chama funcao que imprime matriz com formatacao de 4 espaços "%4d" para cada elemento
23 imprimeMatTriangInf (mat , N);
24
25 return 0;
26 }
27
28 void geraMatTriangInf (int m[][N], int n)
29 {
30 int i, j;
31 for(i=0; i
2 #include 
3 #include 
4
5 # define NLIN 10
6 # define NCOL 10
7
8 void preencheMatriz (int m[][ NCOL], int nl , int nc , int lim);
9 void imprimeMatriz (int m[][ NCOL], int nl , int nc);
10 int encontraMinimax (int matriz [][ NCOL], int nl , int nc , int *l, int *c);
11 int maiorElemMatriz (int m[][ NCOL], int nl , int nc , int * lmaior );
12 int menorElemVetor (int v[], int n, int *pos);
13
14 int main ()
15 {
16 int matriz [NLIN ][ NCOL], minMax , lin , col;
17
18 srand (time(NULL));
19
20 preencheMatriz (matriz , NLIN , NCOL , 20);
21 imprimeMatriz (matriz , NLIN , NCOL);
22 minMax = encontraMinimax (matriz , NLIN , NCOL , &lin , &col);
23
24 printf ("\ nminmax : %d \ nCoordenada : %d -%d \n", minMax , lin , col);
25
26 return 0;
27 }
28
29 void preencheMatriz (int m[][ NCOL], int nl , int nc , int lim)
30 {
31 int i, j;
32
33 for(i=0; i maior )
60 {
61
62 maior = m[i][j];
63 * lmaior = i;
64 }
65 }
66 }
67 return maior ;
68 }
69 int menorElemVetor (int v[], int n, int *pos)
70 {
71 int i;
72 int menor =v[0];
73 *pos =0;
74
75 for(i=1;ie secundária são todos iguais. Exemplo:
8 0 7
4 5 6
3 10 2
é um quadrado mágico pois 8�0�7 � 4�5�6 � 3�10�2 � 8�4�3 � 0�5�10 � 7�6�2 � 8�5�2 � 3�5�7 Faça
uma programa, dada uma matriz quadrada (com elementos lidos do teclado), imprima na tela se ela é um quadrado
mágico ou não. Dica: observe que, assim que uma das somas for diferente, você já pode sair do laço!
11
1 #include 
2 #include 
3 #include 
4 # define TAM 3
5
6 void preencheMatriz (int m[][ TAM], int nl , int nc , int lim);
7 int somaDiag (int m[][ TAM], int tam , int dir);
8 int somaLinha (int m[][ TAM], int nc , int lin);
9 int somaColuna (int m[][ TAM], int nl , int col);
10 int ehQuadradoMagico (int m[][ TAM], int tam);
11
12 int main (){
13 /*
14 int matriz [TAM ][ TAM ];
15 srand (time(NULL));
16 preencheMatriz (matriz , TAM , TAM , 2);
17 */
18
19 int matriz [TAM ][ TAM] = {{8 , 0, 7} ,{4 , 5, 6} ,{3 , 10, 2}}; // essa eh quadrado mágico
20
21 imprimeMatriz (matriz , TAM , TAM);
22
23 if( ehQuadradoMagico (matriz , TAM)) printf ("A matriz eh quadrado magico !");
24 else printf ("A matriz NAO eh quadrado magico !");
25 return 0;
26 }
27 void preencheMatriz (int m[][ TAM], int nl , int nc , int lim){
28 int i, j;
29
30 for(i=0; i
2 # define TAM 100
3
4 // Triangulo Pascal
5 int main (){
6 int m[TAM ][ TAM ]; //
7 int n,i,j;
8
9 do{
10 printf (" Digite o valor de n: ( maximo 100) ");
11 scanf ("%d", &n);
12 } while (n 100) ;
13
14
15
16 // preenche a primeira coluna com 1
17 for(i=0; i
2 # define TAM 100
3
4 void preencheColuna (int m[][ TAM], int col , int valor , int nl);
5 void preencheDiagonal (int m[][ TAM], int valor , int n);
6 void imprimeMatrizDiagInf (int m[][ TAM], int nl , int nc);
7 void preencheTrianguloPascal (int m[][ TAM], int n);
8
9 int main ()
10 {
11 int mat[TAM ][ TAM ]; // como não sabemos alocar matrizes dinamicamente , temos que criar uma matriz estática de
tamanho máximo
12 int n;
13
14 do{
15 printf (" Digite o valor de n: ( maximo 100) ");
16 scanf ("%d", &n);
17 } while (n 100) ;
18
19 preencheTrianguloPascal (mat , n);
20
21 imprimeMatrizDiagInf (mat ,n,n);
22
23 return 0;
24 }
25
26
27 void preencheColuna (int m[][ TAM], int col , int valor , int nl)
28 { // essa funcao serve para qq matriz de no máximo TAM colunas
29 int i;
30 for(i=0; i
2 #include 
3
4 # define NLIN 100
5 # define NCOL 100
6
7 void preencheMatrizLetras (int m[][ NCOL], int nl , int nc , int num);
8 void imprimeMatriz (int m[][ NCOL], int nl , int nc , char opcao );
9 void compara (int gabarito [], int respostas [][ NCOL], int nl , int nc , int pontua []);
10
11 int main ()
12 {
13 int gabarito [NCOL], respostas [NLIN ][ NCOL], nl , nc , pontua [NLIN ];
14
15 srand (time(NULL));
16
17 // printf (" Entre com a dimensão da matriz a ser considerada (100 x100) ou menor : ");
18 // scanf ("% dx%d",&nl ,& nc);
19
20 preencheMatrizLetras (gabarito , 1, 10, 4);
21 preencheMatrizLetras (respostas , 5, 10, 4);
22 printf (" gabarito \n");
23 imprimeMatriz (gabarito , 1, 10,’l’);
24 printf (" respostas \n");
25 imprimeMatriz (respostas , 5, 10,’l’);
26 compara (gabarito ,respostas ,5 ,10 , pontua );
27 printf (" pontuacao \n");
28 imprimeMatriz (pontua , 1, 5,’n’);// cuidado com impressão de matrizes de NCOL diferentes da cte definida no
corpo da funcao !!! neste caso funciona poruqe só tem 1 linha ...
29
30
31 return 0;
32 }
33
34
35
36 void preencheMatrizLetras (int m[][ NCOL], int nl , int nc , int num)
37 {
38 int i, j;
39
40 for(i=0; i

Mais conteúdos dessa disciplina