[C con Clase] Matriz Bidimensional Dinamica
Ali Rincon
alrincon1963 en hotmail.com
Dom Oct 28 02:28:43 CET 2012
Hola a todos. Tengo un problema con una matriz bidimensional la cual necesito hacerla dinámica, pues se trata de una matriz de 17700x6. El código que he escrito hasta ahora es el siguiente:
#include <stdio.h>
#include <stdlib.h>
//Comb6MatrizDin1
/*Programa que calcula las combinaciones de 25 numeros tomados de 6 en 6 y el resultado lo expresa en forma de una matriz 177000x6 dinamica*/
int main()
{
int i1, i2, i3, i4, i5, i6;
int f; // Fila
int c; // Columna
int nF = 177000; // Número de filas
int nC = 6; // Número de columnas
//int mat[nF][nC];
int **mat = NULL;
/*Reserva dinamica de memoria para las columnas*/
//mat = (int **)malloc(nF * sizeof(int *));
mat = malloc(nF * sizeof(int *));
for(f = 0; f < nC; f++)
//mat[f] = (int *)malloc(nC * sizeof(int));
mat[f] = malloc(nC * sizeof(int));
//for(c = 0; c < nC; c++)
/*Calculo de las combinaciones*/
f = 0;
for (i1 = 1; i1 <= 25; i1++)
{
for (i2 = i1 + 1; i2 <= 25; i2++)
{
for (i3 = i2 + 1; i3 <= 25; i3++)
{
for (i4 = i3 + 1; i4 <= 25; i4++)
{
for(i5 = i4 + 1; i5 <= 25; i5++)
{
for (i6 = i5 + 1; i6 <= 25; i6++)
{
if ((i1 != i2) && (i1 != i3) && (i1 != i4) &&
(i1 != i5) && (i1 != i6) && (i2 != i3) &&
(i2 != i4) && (i2 != i5) && (i2 != i6) &&
(i3 != i4) && (i3 != i5) && (i3 != i6)&&
(i4 != i5) && (i4 != i6) && (i5 != i6))
{
c = 0;
mat[f][c] = i1;
c = c + 1;
mat[f][c] = i2;
c = c + 1;
mat[f][c] = i3;
c = c + 1;
mat[f][c] = i4;
c = c +1;
mat[f][c] = i5;
c = c + 1;
mat[f][c] = i6;
f = f + 1;
}
}
}
}
}
}
}
// Mostrar matriz
for (f=0; f<nF; f++)
{
for (c=0; c<nC; c++)
printf(" %d ", mat[f][c]);
printf("\n");
}
/*Liberacion de memoria*/
for(f = 0; f < nF; f++)
free(mat[f]);
free(mat);
//mat = NULL;
//getchar();
return 0;
}
Pero este programa no corre bien, no arroja ningún valor. Puede alguien ayudarme a encontrar el error, por favor.
Ali Rincon
Más información sobre la lista de distribución Cconclase