MATRICES EN C
Una matriz es un vector de vectores o un también llamado array bidimensional. La manera de declarar una matriz en C es similar a un vector:
|
int es el tipo de dato, matriz es el nombre del todo el conjunto de datos y debo de especificar el numero de filas y columnas.
Las matrices también pueden ser de distintos tipos de datos como char, float, double, etc. Las matrices en C se almacenan al igual que los vectores en posiciones consecutivas de memoria.
Usualmente uno se hace la idea que una matriz es como un tablero, pero internamente el manejo es como su definición lo indica, un vector de vectores, es decir, los vectores están uno detrás del otro juntos.
La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2 subíndices que van en los corchetes.
Si coloco int matriz[2][3] = 10; estoy asignando al cuarto elemento de la tercera fila el valor 10.
No olvidar que tanto filas como columnas se enumeran a partir de 0. Bueno y para recorrer una matriz podemos usar igualmente un bucle. En este caso usando 2 for:
for(int i = 0; i < F; i++) { for(int j = 0; j < C; j++) { matrix[i][j] = i % j; } } |
EJEMPLO
/*
SUMO EN LOS EXTREMOS DE UNA MATRIZ EL TOTAL DE CADA FILA Y
CADA COLUMNA
*/
#include <stdio.h>
#include <conio.h>
#define TAM 3
SUMO EN LOS EXTREMOS DE UNA MATRIZ EL TOTAL DE CADA FILA Y
CADA COLUMNA
*/
#include <stdio.h>
#include <conio.h>
#define TAM 3
void main()
{
int matriz[TAM+1][TAM+1],i,j;
{
int matriz[TAM+1][TAM+1],i,j;
clrscr();
// INICIALIZO
for(i=0;i<TAM+1;i++)
for(j=0;j<TAM+1;j++)
matriz[i][j] = 0;
// INGRESO LOS DATOS
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
{
printf("Ingresar dato entero en ( fila[%d] columna[%d] ):",i,j);
scanf("%d",&matriz[i][j]);
}
printf("\n");
}
for(i=0;i<TAM+1;i++)
for(j=0;j<TAM+1;j++)
matriz[i][j] = 0;
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
{
printf("Ingresar dato entero en ( fila[%d] columna[%d] ):",i,j);
scanf("%d",&matriz[i][j]);
}
printf("\n");
}
// MUESTRO LOS DATOS QUE INGRESE EN LA MATRIZ
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
printf("%d\t",matriz[i][j]);
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
printf("%d\t",matriz[i][j]);
printf("\n");
}
// ACUMULO EN LA ULTIMA POSICION DE LA MATRIZ
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
{
matriz[i][TAM]+= matriz[i][j];
matriz[TAM][j]+= matriz[i][j];
}
}
printf("\n");
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
{
matriz[i][TAM]+= matriz[i][j];
matriz[TAM][j]+= matriz[i][j];
}
}
printf("\n");
// MUESTRO LAS SUMAS
for(i=0;i<TAM+1;i++)
{
for(j=0;j<TAM+1;j++)
printf("%d\t",matriz[i][j]);
printf("\n");
}
getch();
}
for(i=0;i<TAM+1;i++)
{
for(j=0;j<TAM+1;j++)
printf("%d\t",matriz[i][j]);
printf("\n");
}
getch();
}
Mejor borralo si no vas a dejar copiarlo
ResponderBorrar/*
BorrarSUMO EN LOS EXTREMOS DE UNA MATRIZ EL TOTAL DE CADA FILA Y
CADA COLUMNA
*/
#include
#include
#define TAM 3
void main()
{
int matriz[TAM+1][TAM+1],i,j;
clrscr();
// INICIALIZO
for(i=0;i<TAM+1;i++)
for(j=0;j<TAM+1;j++)
matriz[i][j] = 0;
// INGRESO LOS DATOS
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
{
printf("Ingresar dato entero en ( fila[%d] columna[%d] ):",i,j);
scanf("%d",&matriz[i][j]);
}
printf("\n");
}
// MUESTRO LOS DATOS QUE INGRESE EN LA MATRIZ
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
printf("%d\t",matriz[i][j]);
printf("\n");
}
// ACUMULO EN LA ULTIMA POSICION DE LA MATRIZ
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
{
matriz[i][TAM]+= matriz[i][j];
matriz[TAM][j]+= matriz[i][j];
}
}
printf("\n");
// MUESTRO LAS SUMAS
for(i=0;i<TAM+1;i++)
{
for(j=0;j<TAM+1;j++)
printf("%d\t",matriz[i][j]);
printf("\n");
}
getch();
}
jajaja no se como pero lo copie
BorrarAlchile , mejor borralo
ResponderBorrarme marca error papi. :c
ResponderBorrarDe que sirve que no dejes copiar el código?
ResponderBorrarsolo no les deja hacer segundo click copiar, usen cntrl+c
ResponderBorrargracias por el codigo, me sirvio mucho, para los que no puedan copiar usen ctrl + c
ResponderBorrarni compila XD
ResponderBorrarNo compila tu chingadera bro
ResponderBorrarpara lo que no les compile el programa...
ResponderBorrarprueven de esta manera:
#include
#include
#define TAM 3
int main(void)
{
int matriz[TAM+1][TAM+1],i,j;
//clrscr();
Si no les compila solo borren "clrscr();"
ResponderBorrarlo modifique por si alguien quiere cambiar el tamaño de la matriz
ResponderBorrar/*
SUMO EN LOS EXTREMOS DE UNA MATRIZ EL TOTAL DE CADA FILA Y
CADA COLUMNA
*/
#include
#include
int main()
{
int i,j,fil,col;
// CREO EL TAMAÑO DE LA MATRIZ
printf("primero ingrese el tamaño de la matriz\n");
printf("numero de filas:\t");
scanf("%d",&fil); //numero de filas que tendra la matriz
printf("numero de columnas:\t");
scanf("%d",&col); //numero de colimnas que tendra la matriz
int matriz[fil+1][col+1];
// INICIALIZO
for(i=0;i<fil+1;i++)
{
for(j=0;j<col+1;j++)
{
matriz[i][j] = 0;
}
}
// INGRESO LOS DATOS
for(i=0;i<fil;i++)
{
for(j=0;j<col;j++)
{
printf("Ingresar dato entero en ( fila[%d] columna[%d] ):",i,j);
scanf("%d",&matriz[i][j]);
}
printf("\n");
}
// MUESTRO LOS DATOS QUE INGRESE EN LA MATRIZ
for(i=0;i<fil;i++)
{
for(j=0;j<col;j++)
printf("%d\t",matriz[i][j]);
printf("\n");
}
// ACUMULO EN LA ULTIMA POSICION DE LA MATRIZ
for(i=0;i<fil;i++)
{
for(j=0;j<col;j++)
{
matriz[i][col]+= matriz[i][j];
matriz[fil][j]+= matriz[i][j];
}
}
printf("\n");
// MUESTRO LAS SUMAS
for(i=0;i<fil+1;i++)
{
for(j=0;j<col+1;j++)
printf("%d\t",matriz[i][j]);
printf("\n");
}
getch();
return 0;
}
/*
ResponderBorrarSUMO EN LOS EXTREMOS DE UNA MATRIZ EL TOTAL DE CADA FILA Y
CADA COLUMNA
*/
#include
#include
#define TAM 3
void main()
{
int matriz[TAM+1][TAM+1],i,j;
clrscr();
/* INICIALIZAMOS LA MATRIZ */
for(i=0;i<TAM+1;i++)
for(j=0;j<TAM+1;j++)
matriz[i][j] = 0;
/* INGRESO DE LOS DATOS */
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
{
printf("Ingresar dato entero en ( fila[%d] columna[%d] ):",i+1,j+1);
scanf("%d",&matriz[i][j]);
}
printf("\n");
}
/* MUESTRAMOS LOS DATOS QUE SE INGRESARON EN LA MATRIZ */
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
printf("%d\t",matriz[i][j]);
printf("\n");
}
/* ACUMULO EN LA ULTIMA POSICION DE LA MATRIZ*/
for(i=0;i<TAM;i++)
{
for(j=0;j<TAM;j++)
{
matriz[i][TAM]+= matriz[i][j];
matriz[TAM][j]+= matriz[i][j];
}
}
printf("\n");
printf("\n A\tB\tC\tSF\n");
printf("-----------------------------\n");
/* MUESTRO LAS SUMAS */
for(i=0;i<TAM+1;i++)
{
for(j=0;j<TAM+1;j++)
printf("%d\t",matriz[i][j]);
printf("\n");
}
printf("-----------------------------\n");
getch();
}