Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Estrutura de Dados Homogênea (Matriz)
Inicializar uma Matriz
- Semelhantemente aos vetores podemos inicializar as matrizes no momento da declaração, para isso devemos colocar cada linha entre chaves {}, e separar elas por vírgulas, veja:
int Mat[2][5] = { {100, 90, 80, 70, 60 }, {200, 190, 180, 170, 160 } };
Exemplo
Percorrer a matriz Mat (3 x 3) contendo números inteiros e transformar, caso existam, os números negativos em positivos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<stdio.h>
int main() {
int i, j;
int mat[3][3] = {{2, -4, 5},{-8, -1, 7},{-3, -6, 9}};
for(i=0; i < 3; i++)
{
for(j=0; j < 3; j++)
{
if (mat[i][j]< 0)
{
mat[i][j] = mat[i][j] * -1;
}
}
}
for(i=0; i < 3; i++)
{
for(j=0; j < 3; j++)
{
printf("%d ", mat[i][j]);
}
printf("\n");
}
}
Enter to Rename, Shift+Enter to Preview
- Semelhantemente aos vetores, podemos também mover valores para as matrizes através do comando de leitura(scanf).
for(i = 0; i < 2; i++)
{
for(j = 0; j < 5; j++)
{
scanf("%d", &vet[i][j]);
}
}
Exercicio 1
Dada a Matriz A = {{10, 30, 50}, {5, 15, 25}, {2, 5, 9}} e a Matriz B= {{5, 35, 70}, {1, 25, 30}, {1, 4, 7}}, faça um programa que gere a Matriz C contendo os maiores valores de cada posição. Mostre a Matriz C.
IDE
1
2
3
4
5
Para exibição do IDE, selecione a tecla <RUN> abaixo.
Digite sua solução no editor e execute.
Caso acha entrada de dados (scanf) no programa, digitar o(s) valor(es) na janela "Input" (um valor por linha).
Atenção: O editor não salva o seu programa.
Enter to Rename, Shift+Enter to Preview
Solução
#include<stdio.h>
int main(){
int A[3][3] = {{10, 30, 50}, {5, 15, 25}, {2, 5, 9}};
int B[3][3] ={{5, 35, 70}, {1, 25, 30}, {1, 4, 7}};
int C[3][3], i, j;
for(i = 0; i < 3; i++){ /* percorre as linhas da Matriz */
for(j = 0; j < 3; j++){ /* percorre as colunas da Matriz */
if (A[i][j] > B[i][j]) {
C[i][j] = A[i][j];
}
else {
C[i][j] = B[i][j];
}
}
}
printf("\n"); /* Pula Linha*/
for(i = 0; i < 3; i++){ /* percorre as linhas da Matriz */
for(j = 0; j < 3; j++){ /* percorre as colunas da Matriz */
printf("%d ",C[i][j]);
}
printf("\n"); /* Pula Linha*/
}
}
Exercicio 2
Faça programa que leia uma matriz 4 x 4 com valores reais.
(a) Imprima a soma de todos os elementos das colunas ímpares.
(b) Imprima a media aritmética dos elementos das colunas pares.
(d) Imprima os resultados.
IDE
1
2
3
4
5
Para exibição do IDE, selecione a tecla <RUN> abaixo.
Digite sua solução no editor e execute.
Caso acha entrada de dados (scanf) no programa, digitar o(s) valor(es) na janela "Input" (um valor por linha).
Atenção: O editor não salva o seu programa.
Enter to Rename, Shift+Enter to Preview
Solução
#include<stdio.h>
int main(){
float A[4][4];
int i, j, cont;
float somapar, somaimpar;
float media;
somaimpar = 0;
somapar = 0;
cont = 0;
for(i = 0; i < 4; i++){ /* percorre as linhas da Matriz */
for(j = 0; j < 4; j++){
printf("\nDigite um numero inteiro: ");
scanf("%f", &A[i][j]);
}
}
for(i = 0; i < 4; i++){ /* percorre as linhas da Matriz */
for(j = 0; j < 4; j++){ /* percorre as colunas da Matriz */
if (j % 2 == 0) { /* colunas pares */
somapar= somapar + A[i][j];
cont = cont + 1; /* conta o número de elementos */
}
else {
somaimpar = somaimpar + A[i][j];
}
}
}
media = somaimpar/cont;
printf("\nA soma dos valores das colunas impares e %f", somaimpar);
printf("\nA media dos valores das colunas pares e %f", media);
}
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content