C/Visual C - Paso de un arreglo bidimensional

 
Vista:

Paso de un arreglo bidimensional

Publicado por Elideth (1 intervención) el 25/02/2001 07:40:18
Hola amigos ,espero que alguien me pueda decir como le hago para crear una funcion que
llene un arreglo bidimensional y lo regrese al main lleno. Es decir, necesito llenarlo pasandolo
por referencia (usando apuntadores) pero como lo hago para moverme dentro de la tabla
e irle agregando los valores.
Se los agradezco de antemano.........
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Paso de un arreglo bidimensional

Publicado por Cris (11 intervenciones) el 25/02/2001 09:39:26
Para empezar, los arreglos automaticamente se pasan por referencia, asi que solo los mandas llamar con la funcion.
para llenar la tabla tienes que tener dos contadores, i, y j, i te servira para moverte horizontalmente y j verticalmente, o viceversa, como gustes.

supongamos que tienes un arreglo bidimensional de 5 filas por 5 columnas y lo quieres llenar con numeros del 1 al 25:

void llena(int arreglo[5][5]){
int n=1;
for(int i=0; i<5; i++)
for(int j=0; j<5; j++){
arreglo[i][j]=n;
n++;
}
}

/*este procedimiento lo que hace es tener una variable n, que aumentara para poner los numeros del 1 al 25, i que recorre el arreglo horizontalmente y j que lo recorre verticalmente.
anidas dos FOR para que cuando i==0, j recorra el arreglo verticalmente y llene esa columna, y asi sucesivamente cuando i valga 1,2,3,4..*/

void imprime(int arreglo[5][5]){
for(int i=0; i<5; i++)
for(int j=0; j<5; j++)
cout<<arreglo[i][j]<<endl;
}

esta funcion lo que hace es imprimir los numeros que estan dentro del arreglo, solo falta que los mandes llamar en el main:

void main(){
int miarreglo[5][5];
clrscr();
llena(miarreglo);
imprime(miarreglo);
getch();
}

para acceder a una celda en especifico, debes saber su locacion, suponiendo que quieres corregir un numero en la locacion del arreglo :
en la columna 4 fila 2:

arreglo[4][2]=76; //o lo que sea

Espero haberte sido de ayud
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar