2
« en: Domingo 14 de Diciembre de 2003, 08:34 »
Hola!!!
Estuve chusmeando y arreglé las cosas que tienen comentarios, espero te sirva de algo.
Flor Castagnino
[CODE]
#include <stdio.h>
#include <stdlib.h>
/*Escriba un programa que lea una matriz de FxC enteros e indique la posición del elemento mínimo*/
void leer_elementos (int filas, int columnas, int **matriz);
void posicion_minimo (int filas, int columnas, int **matriz,
int *direccion_matriz_posiciones , int *almacen2);
int main (void)
{
int F, C;
int i, j;
/*El problema lo encontré en la variable almacen así que la dividí en
dos variables distintas*/
int *almacen;
int *almacen2;
int **pMatriz;
printf ("Introduzca F: ");
scanf ("%d", &F);
printf ("Introduzca C: ");
scanf ("%d", &C);
pMatriz = (int **) malloc ( sizeof (int *) * F);
almacen = (int *) malloc (sizeof (int)/* * 2*/); /*numero dimensiones array principal = 2*/
almacen2 = (int *) malloc (sizeof (int));
leer_elementos(F, C, pMatriz);
posicion_minimo(F, C, pMatriz, almacen , almacen2);
printf ("El valor mínimo en la Matriz reside en pMatriz[%d][%d] y tiene el valor %d.\n",
*almacen,*almacen2,pMatriz[*almacen][*almacen2]);
/*No se libera la memoria alocada*/
}
void leer_elementos(int F,int C, int **pMatriz)
{
int i, j;
int valor;
for (i=0;i<F;i++)
{
pMatriz = (int *) malloc (sizeof(int) * C);
}
for (i=0;i<F;i++)
{
for (j=0;j<C;j++)
{
printf ("Si es tan amable, introduzca usted el valor de pMatriz[%d][%d]: ", i, j);
scanf ("%d", &pMatriz[j]);
}
}
}
/*Ahora paso las dos variables almacen a la función*/
void posicion_minimo(int F, int C, int **pMatriz, int *almacen , int *almacen2)
{
int f_minimo, c_minimo, v_minimo;
int i, j;
v_minimo = pMatriz[0][0];
f_minimo = 0;
c_minimo = 0;
*almacen = 0;
*almacen2 = 0;
for (i=0;i<F;i++)
for(j=0;j<C;j++)
{
if (pMatriz[j] < v_minimo)
{
f_minimo=i;
c_minimo=j;
v_minimo=pMatriz[j];
}
}
*almacen = f_minimo;
*almacen2 = c_minimo;
}