|
/* 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
|