Mientras estoy haciendo el ejercicio 10 (con mi teclado y mouse inalámbrico nuevo =D ) me doy cuenta que uso muchas veces la misma sintaxis para mostrar el arreglo. Entonces se me vino la cabeza de hacer una función para poder mostrarla y no secarme la mente en el intento, pero ¿Cómo se pasa el valor de un arreglo bidimensional a una función?
Es sencillo: no se pasa.
Lo que se pasa es la dirección.
Entonces, si tenemos un arreglo simple de 1 dimensión y queremos pasar el valor a una función simplemente se indica el nombre sin los corchetes. por ej:
#include<stdio.h>
#define K 4 //la constante modificable
//void porque no quiero que me devuelva nada a main()
//Atencion a como se pone el corchete vacío para recibir la direccion
void muestra(int a[])
{
int i;
for(i=0;i<K;i++) printf("%d ",a[i]);
}
main()
{
int i,A[K];
for(i=0;i<K;i++)
{
scanf("%d",&A[i]);
fflush(stdin);
}
//Fijate como va sin corchetes ni nada
//y en la funcion se pone distinto al recibirlo
muestra(A);
}
#include<stdio.h>
#define K 4 //imaginando que trabajamos con una matriz cuadrada
//La primera dimensión no se pone, pero las demás si
void muestra(int a[][K])
{
int i,j;
for(i=0;i<K;i++) for(j=0;j<K;j++)printf("%d ",a[i][j]);
}
main()
{
int i,j,A[K][K];
for(i=0;i<K;i++)
{
for(j=0;j<K;j++)
{
scanf("%d",&A[i][j]);
fflush(stdin);
}
}
//Sigue poniéndose sin corchetes
muestra(A);
}
estem... creo que está bien, que alguien lo compile y me diga si anda.
y... asi es la cosa... Ahora sigo con el 10 a ver que pasa.
0 comentarios:
Publicar un comentario