/* Cargar un array bidimensional de p*q y devolver un puntero apuntando a la fila que mas suma.*/

#include <stdio.h>

#define fil 5
#define col 5

void cargar_tabla(int(*)[col],int,int);
int *max_fila(int(*)[col],int,int);

void main()
{
   int p,q,array[fil][col];
   int *pfila,i;
   do{
       printf("Dame las filas:");
       scanf("%d",&p);
   }while(p<2 || p>5);
   do{
       printf("Dame las columnas:");
       scanf("%d",&q);
   }while(q<2 || q>5);
   cargar_tabla(array,p,q);
   pfila=max_fila(array,p,q);
   for (i=0;i<q;i++)
      printf(" %d ",*(pfila+i));
}

void cargar_tabla(int (*array)[col],int p,int q)
{
 int i,j;
 for(i=0;i<p;i++)
   for (j=0;j<q;j++)
   {
    printf("Dame un [%d,%d]:",i,j);
    scanf("%d",(*(array+i)+j));
   }
 return;
}

int *max_fila(int (*array)[col],int p,int q)
{
 int i,j,suma=0,max,pos;
 for(i=0;i<p;i++)
 {
   for (j=0;j<q;j++)
     suma+=*(*(array+i)+j);
   if(!i)
    {
       max=suma;    // Para no inicializar el mayor  a cero si 
       pos=i;             // me dan todos los números negativos
    }
   else
       if(suma>max)
        {
           max=suma;
           pos=i;
        }
      suma=0;
    }
 return (*(array+pos));
}

d VOLVER