[C] Arreglos de m*n enteros

Iniciado por GGZ, 1 Octubre 2015, 23:35 PM

0 Miembros y 2 Visitantes están viendo este tema.

A.I.

Lo que te pide el enunciado es ésto

int pos(int array[], int fila, int columna){
  return array[fila*NCOL + columna];
}


Pero te pongo un poco más de código que creo que te ayudará a comprenderlo mejor

#include <stdio.h>
#define NFIL 4
#define NCOL 10
#define NELEM NFIL * NCOL

int pos(int array[], int fila, int columna){
  return array[fila*NCOL + columna];
}


int main (){
  int elArray [NELEM];
  int fila, columna, i;

  for (i = 0; i < NELEM; i++)
    elArray[i] = i;
 
  printf("Fila: ");
  scanf("%d", &fila);

  printf("Columna: ");
  scanf("%d", &columna);

  printf("(%d,%d) = %d\n", fila, columna, pos(elArray, fila, columna));

  return 0;
}


Si no entiendes alguna parte pregunta ;-)

GGZ

/*
Dado un arreglo de m*n enteros, escribir una función pos que tome una fila y una columna, y devuelva el entero correspondiente a esa posición, es decir interpreté el arreglo unidimensional como una matriz.
*/

#include <stdio.h>

int pos (int a[], int fila, int columna);

int NCOL;
int NFIL;

int main (void){
int i,j;
int fila,columna;

printf ("Filas del Array: ");
scanf ("%d",&NFIL);
printf ("Columnas del Array: ");
scanf ("%d",&NCOL);


int array[NCOL*NFIL];


for (i=0;i<NCOL*NFIL; i++){
array[i]=i;
}

printf ("Fila: ");
scanf ("%d",&fila);
printf ("Columna: ");
scanf ("%d",&columna);



printf ("(%d,%d)=%d",fila,columna,pos(array,fila,columna));


return 0;
}

int pos (int a[], int fila, int columna){

return a[fila*NCOL+(columna)];
}



Creo que mas o menos voy entendiendo, lo voy a seguir pensando por mi cuenta, no creo que lo que hice esté bien.

Algo así?
LET'S DO STUFF!!