Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Hay que tener bien presente que en este caso el ultimo índice (extremo derecho)
se incrementa mas rápidamente, y el primer índice (extremo izquierdo) se
incrementa mas lentamente, es decir [ C ] incrementa mas rápido, y [ F ] mas
lento.
Para acceder a cada una de las casillas del array se puede utilizar sentencias de
control tipo iteración, aquí depende de cual quieras utilizar o con cual te acomodes
más.
En los siguientes ejemplos, a todas las casillas del vector se les asigna un número
dado por el usuario, suponiéndose que las variables ya están declaradas.
fil=0;
while (fil<n){
printf(“Dame datos de la fila: %d”,fil +1);
for (col=0; col<m; col++){
scanf(“%d”,&array[fil][col]);
}
fil+=1;
}
fil=0;
do
{
col =0;
printf(“Dame datos de la fila: %d”,fil +1);
while (col<m){
scanf(“%d”,&array[fil][col]);
col++;
}
fil+=1;
}while(fil!=n);
En todos los ejemplos antes vistos primero se fija la ubicación de la fila, después
se accede a las columnas y se les agrega el dato, ya que se termine este proceso,
la fila avanza 1, y la columna empieza de nuevo, y así sucesivamente.
El ciclo externo es el que lleva el control de las filas y el interno el de las columnas,
este último avanza más rápido que el de las filas.
col= 0; col= 1;
fil = 0; 5 fil = 0; 7
col= 2; col= 0;
fil = 0; 9
fil = 1; 3
col= 1; col= 2;
fil = 1; 6 fil = 1; 9
El array completo:
5 7 9
3 6 9
De igual manera podemos mostrar los datos del array de la misma forma:
#include<stdio.h>
#include<conio.h>
# define MAXFIL 4
# define MAXCOL 4
#include<stdio.h>
#include<conio.h>
# define FIL 4
# define COL 4
/*Prototipos de funcion*/
void mostrar (int c[ ][COL], int fila, int columna);
void leearray( int a[ ] [COL] , int fila, int columna);
void sumar(int a[ ] [COL],int b[ ] [ COL], int c[ ][COL], int fila, int columna);
/*Variables globales */
/*Programa principal */
void main ()
{
clrscr();
printf("Dame el num de filas:");
scanf("%d",&fil);
printf("Dame el num de columna:");
scanf("%d",&col);
printf("Primera Tabla:\n");
leearray( matriz1,fil,col);
printf("Segunda Tabla:\n");
leearray( matriz2,fil, col);
sumar(matriz1,matriz2,matriz3,fil,col);
printf("Suma de las 2 matrices:");
mostrar (matriz3,fil,col);
}
/*Declaración de funciones */
void sumar(int a[ ][COL],int b[ ][COL], int c[ ][COL], int fil, int colu)
{
int j,k;
for (j=0;j<fil;j++)
{
for (k=0; k<colu;k++)
{
c[j][k] = a[j][k] + b[j][k];
}
printf("\n");
}
}
void mostrar (int c [ ] [ COL], int fila, int colum)
{
int p,q;
for (p=0;p<fila; p++)
{
for(q=0;q<colum; q++)
{
printf("%d ", c[ p ] [ q ]);
}
}
getch();
}
Vámonos por partes, al declarar los prototipos de función vemos que en los
argumentos, los arrays están declarados por un tipo, un nombre de variable y un
par de corchetes, el primero [ ] no necesariamente debe contener la constante FIL,
ya que con el otro [ ] estamos dando a entender que es un array, eso si, si lo
escriben de esa manera en el prototipo, lo deberán hacer exactamente igual en la
declaración de la función.
void mostrar (int c[ ][COL], int fila, int columna);