Blog, para facilitar del Lenguaje de Programación C
Matrices
Las matrices se declaran de forma análoga, con corchetes independientes para cada subíndice. La forma general de la declaración es:
tipo nombre[numero_filas][numero_columnas]; donde tanto las filas como las columnas se numeran también a partir de 0. La forma de acceder a los elementos de la matriz es utilizando su nombre, seguido de las expresiones enteras correspondientes a los dos subíndices, entre corchetes.
En C tanto los vectores como las matrices admiten los tipos de las variables escalares (char, int, long, float, double, etc.), Las matrices en C se almacenan por filas, en posiciones consecutivas de memoria. En cierta forma, una matriz se puede ver como un vector de vectores-fila. Si una matriz tiene N filas (numeradas de 0 a N-1) y M columnas (numeradas de 0 a la M-1), el elemento (i, j) ocupa el lugar: posición_elemento(0, 0) + i * M + j
A esta fórmula se le llama fórmula de direccionamiento de la matriz.
Ejemplo
Diseñe un programa que lea un matriz de 6*6 y luego determine la suma de cada una de las filas y la almacene en un vector llamado suma.
#include <stdio.h>
#include <conio.h>
#define F 6
#define C 6
main()
{
int matriz[F][C], i,j, vector [F]={0,0,0,0,0,0};
for(i=0; i<F; i++)
for(j=0; j<C; j++)
{
printf("Ingrese el elemento F=%d y Columna=%d de la matriz:\n", i,j);
scanf("%d", &matriz[i][j]);
vector[i]=vector[i]+matriz[i][j];
}
printf("La Matriz generada es:\n\n");
for(i=0; i<F; i++)
{
for(j=0; j<C; j++)
{
printf("*%d*", matriz[i][j]);
}
printf("\n");
}
printf("Y el vector suma de las filas es:\n\n");
for(i=0; i<F; i++)
printf("%d\t", vector[i]);
getch();
return 0;
}
Creo que no hay mucho por explicar, el uso de una matriz en C, es bastante parecido al de un vector, pero con las diferencias que en un vector tenemos únicamente una dimensión y en las matrices tenemos dos.
Ejemplo 2.
Programa que capture las notas de 3 alumnos de 05 materias e imprima el
Promedio de cada uno y de todos en conjunto.*/
#include <stdio.h>
#include <stdlib.h>
int main(){
system("color 3a");
int tabla [3][5];
int promedio[3];
for(int i=0;i<3;i++){
printf("\n\nIngrese la calificacion en matematicas del estudiante %i :",i+1);
scanf("%i",&tabla[i][0]);
printf("\n\nIngrese la calificacion en Fisica del estudiante %i :",i+1);
scanf("%i",&tabla[i][1]);
printf("\n\nIngrese la calificacion en Quimica del estudiante %i :",i+1);
scanf("%i",&tabla[i][2]);
printf("\n\nIngrese la calificacion en Ingles del estudiante %i :",i+1);
scanf("%i",&tabla[i][3]);
printf("\n\nIngrese la calificacion en Programacion del estudiante %i :",i+1);
scanf("%i",&tabla[i][4]);
system("cls");
}
for(int x=0;x<3;x++){
promedio[x]=((tabla[x][0]+tabla[x][1]+tabla[x][2]+tabla[x][3]+tabla[x][4])/5);
printf("\nPromedio del alumno %i: %i",x+1,promedio[x]);
}
printf("\nPromedio total: %i",(promedio[0]+promedio[1]+promedio[2])/3);
system("pause");
return 0;
}
Ejemplo 3.
Supongamos que ahora queremos almacenar las temperaturas de toda la semana. Según lo que aprendimos en el capítulo anterior podríamos usar un array unidimiensional por cada día de la semana. En cada uno de esos arrays podríamos almacenar las temperaturas de cada día."
#include <stdio.h>
#define DIAS 7
#define HORAS 24
int main()
{
int temp[DIAS][HORAS];
float media = 0;
int hora, dia;
for( dia=0 ; dia<DIAS ; dia++ ) {
for( hora=0 ; hora<HORAS ; hora++ ) {
printf( "Temperatura de las %d el día %d: ", hora, dia );
scanf( "%i", &temp[dia][hora] );
media += temp[dia][hora];
}
}
media = media / HORAS / DIAS;
printf( "\nLa temperatura media de toda la semana es %f\n", media );
return 0;
}