Utilizando matrizes
Publicado por Marcos (última atualização em 28/08/2012)
[ Hits: 4.030 ]
Este script tem a intenção de servir como material de apoio para iniciantes (assim com eu), tentei fazer da forma mais clara possível.
Uma matriz é vista como um vetor, a diferença é que fica "claro" que o compilador precisará fazer alguns "saltos" que é indicado pelo campo colunas na declaração ou na chamada da função. Neste código fica nítido que na implementação de todas as funções, na variável matriz eu omiti o valor do campo referente as linhas, visto que conforme explicado anteriormente este valor será simplesmente ignorado pelo compilador, uma vez que ele se preocupa apenas com a quantidade de saltos precisará fazer.
Espero que seja útil.
Sugestões são sempre bem-vindas!
/*programa carrega uma matriz de no máximo 15x18 e efetue a soma, multiplicação e impressão desses valores.
relembrando: matrizes e vetores são sempre passados por referencia*/
#include <stdlib.h>
#include <stdio.h>
//utilizando protótipos das funções
void carregaMatriz(int matriz[][18],int linhas, int colunas);//responsável por carregar a matriz
void somaMatriz(int matriz[][18],int matriz2[][18],int adicao[][18],int linhas,int colunas);//responsável pela soma entre matrizes
void multiplicaMatriz(int matriz[][18],int multiplica[][18],int x, int linhas, int colunas);//multiplica 1ª matriz por um fator informando pelo usuario
void imprimeMatriz(int matriz[][18],int linhas, int colunas);//mostra os resultados na tela
int main(){
int x,linhas,colunas,matriz[15][18],matriz2[15][18],adicao[15][18],multiplica[15][18];
printf("Informe a qtde de linhas da matriz: ");
scanf("%d",&linhas);
while(linhas>15){
printf("\nNumero de linhas invalido...");
printf("\n\nInforme a qtde de linhas da matriz: ");
scanf("%d",&linhas);
}
printf("Informe a qtde de colunas da matriz: ");
scanf("%d",&colunas);
while(colunas>18){
printf("\nNumero de colunas invalido...");
printf("\n\nInforme a qtde de colunas da matriz: ");
scanf("%d",&colunas);
}
printf("\n\nCarregando valores da primeira matriz: \n");
carregaMatriz(matriz,linhas,colunas);
printf("\n\nCarregando valores da segunda matriz: \n");
carregaMatriz(matriz2,linhas,colunas);
printf("\n\nInforme o fator de multiplicacao: ");
scanf("%d",&x);
somaMatriz(matriz,matriz2,adicao,linhas,colunas);
multiplicaMatriz(matriz,multiplica,x,linhas,colunas);
printf("\n\n\nResultado da soma: \n");
imprimeMatriz(adicao,linhas,colunas);
printf("\n\n\nResultado da multiplicacao: \n");
imprimeMatriz(multiplica,linhas,colunas);
printf("\n\n");
system("pause");
return 0;
}
void carregaMatriz(int matriz[][18],int linhas, int colunas){
for(int i=0;i<linhas;i++){
for(int j=0;j<colunas;j++){
printf("Informe um valor para linha: %d x coluna: %d = ",i,j);
scanf("%d",&matriz[i][j]);
}
}
}
void somaMatriz(int matriz[][18],int matriz2[][18],int adicao[][18],int linhas,int colunas){
for(int i=0;i<linhas;i++){
for(int j=0;j<colunas;j++)
adicao[i][j]=matriz[i][j]+matriz2[i][j];
}
}
void multiplicaMatriz(int matriz[][18],int multiplica[][18],int x, int linhas, int colunas){
for(int i=0;i<linhas;i++){
for(int j=0;j<colunas;j++)
multiplica[i][j]=x*matriz[i][j];
}
}
void imprimeMatriz(int matriz[][18],int linhas, int colunas){
for(int i=0;i<linhas;i++){
for(int j=0;j<colunas;j++)
printf("\nLinha: %d -- Coluna: %d = %d",i,j,matriz[i][j]);
}
}
Função para escrita de um número em notação binária através de recursão
Algoritmo de ordenação: Inserction Sort
Nenhum comentário foi encontrado.
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
BigLinux 2026 Wallpapers animado (1)
Warsaw não é reconhecido no Google Chrome 147.0.7727.55 (8)
(CLIPPER) Rodando o mesmo código tanto no Windows quanto no Linux (5)









