<HTML>
<BODY>
<DIV>Hola buen día,</DIV>
<DIV> </DIV>
<DIV>Según puedo ver, tu estructura "mat" no está diseñada para realizar la operación que deseas.</DIV>
<DIV> </DIV>
<DIV>De pronto podrías utilizar una especie de estructura de tipo "lista", en donde te permita insertar "nodos" y luego eliminar el que deseas.</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>Saludos<br>
<br>
<-----Original Message-----><br>
From: Ali Rincon [cconclase@listas.conclase.net]</DIV>
<DIV></DIV>
<DIV>Sent: 21/12/2013 7:33:47 PM</DIV>
<DIV></DIV>
<DIV>To: cconclase@listas.conclase.net</DIV>
<DIV></DIV>
<DIV>Subject: [C con Clase] Como eliminar filas en una matriz dinamica?</DIV>
<DIV></DIV>
<DIV></DIV>
<DIV><br>
Hola a todos. A continuacion les envio el programa, en donde se calcula unas combinaciones y luego deseo imponer una condicion muy simple (la cual se explica en el programa) y lo que deseo es ver la matriz que debe quedar:<br>
<br>
#include <stdio.h><br>
#include <stdlib.h><br>
<br>
//Matriz15x14Dinamica<br>
/*Programa que calcula las combinaciones de 15 numeros tomados de 14 en 14 y el resultado lo expresa en forma de una matriz 15x14 dinamica*/<br>
<br>
//int main()<br>
void main()<br>
<br>
{<br>
int i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14;<br>
int **mat = NULL; //Aqui la matriz "mat" se declara como un doble puntero de tipo int, es decir, como un puntero a un puntero.<br>
int f; // Fila<br>
int c; // Columna<br>
int nF = 15; // Número de filas<br>
int nC = 14; // Número de columnas<br>
char seguir, siga;<br>
<br>
/*Reserva dinamica de memoria*/<br>
<br>
mat = malloc(nF * sizeof(int *)); //Se reserva memoria para un numero de filas nF de punteros a int.<br>
<br>
//if(!mat)<br>
if(mat == NULL)<br>
{<br>
printf("Memoria insuficiente\n");<br>
<br>
return 1;<br>
}<br>
<br>
for(f = 0; f < nF; f++) //Este bucle proporciona un bloque de memoria para cada una de las 15 filas de la matriz mat.<br>
{<br>
mat[f] = malloc(nC * sizeof(int));<br>
//if(!mat[f])<br>
if(mat[f] == NULL)<br>
{<br>
printf("Memoria insuficiente\n");<br>
<br>
for(c = 0; c < f; c++)<br>
<br>
free(mat[c]);<br>
free(mat);<br>
<br>
return 1;<br>
}<br>
}<br>
<br>
/*Calculo de las combinaciones*/<br>
<br>
f = 0;<br>
<br>
for (i1 = 1; i1 <= 15; i1++)<br>
{<br>
for (i2 = i1 + 1; i2 <= 15; i2++)<br>
{<br>
for (i3 = i2 + 1; i3 <= 15; i3++)<br>
{<br>
for (i4 = i3 + 1; i4 <= 15; i4++)<br>
{<br>
for(i5 = i4 + 1; i5 <= 15; i5++)<br>
{<br>
for (i6 = i5 + 1; i6 <= 15; i6++)<br>
{<br>
for (i7 = i6 + 1; i7 <= 15; i7++)<br>
{<br>
for (i8 = i7 + 1; i8 <= 15; i8++)<br>
{<br>
for (i9 = i8 + 1; i9 <= 15; i9++)<br>
{<br>
for (i10 = i9 + 1; i10 <= 15; i10++)<br>
{<br>
for (i11 = i10 + 1; i11 <= 15; i11++)<br>
{<br>
for (i12 = i11 + 1; i12 <= 15; i12++)<br>
{<br>
for (i13 = i12 + 1; i13 <= 15; i13++)<br>
{<br>
for (i14 = i13 + 1; i14 <= 15; i14++)<br>
{<br>
if ((i1 != i2) && (i1 != i3) && (i1 != i4) && (i1 != i5) &&<br>
(i1 != i6) && (i1 != i7) && (i1 != i8) && (i1 != i9) &&<br>
(i1 != i10) && (i1 != i11) && (i1 != i12) && (i1 != i13) &&<br>
(i1 != i14) && (i2 != i3) && (i2 != i4) && (i2 != i5) &&<br>
(i2 != i6) && (i2 != i7) && (i2 != i8) && (i2 != i9) &&<br>
(i2 != i10) && (i2 != i11) && (i2 != i12) && (i2 != i13) &&<br>
(i3 != i4) && (i3 != i5) && (i3 != i6) && (i3 != i7) &&<br>
(i3 != i8) && (i3 != i9) && (i3 != i10) && (i3 != i11) &&<br>
(i3 != i12) && (i3 != i13) && (i4 != i5) && (i4 != i6) &&<br>
(i4 != i7) && (i4 != i8) && (i4 != i9) && (i4 != i10) &&<br>
(i4 != i11) && (i4 != i12) && (i4 != i13) && (i4 != i14) &&<br>
(i5 != i6) && (i5 != i7) && (i5 != i8) && (i5 != i9) &&<br>
(i5 != i10) && (i5 != i11) && (i5 != i12) && (i5 != i13) &&<br>
(i5 != i14) && (i6 != i7) && (i6 != i8) && (i6 != i9) &&<br>
(i6 != i10) && (i6 != i11) && (i6 != i12) && (i6 != i13) &&<br>
(i6 != i14) && (i7 != i8) && (i7 != i9) && (i7 != i10) &&<br>
(i7 != i11) && (i7 != i12) && (i7 != i13) && (i7 != i14) &&<br>
(i8 != i9) && (i8 != i10) && (i8 != i11) && (i8 != i12) &&<br>
(i8 != i13) && (i8 != i14) && (i9 != i10) && (i9 != i11) &&<br>
(i9 != i12) && (i9 != i13) && (i9 != i14) && (i10 != i11) &&<br>
(i10 != i12) && (i10 != i13) && (i10 != i14) && (i11 != i12) &&<br>
(i11 != i13) && (i11 != i14) && (i12 != i13) && (i12 != i14) &&<br>
(i13 != i14))<br>
{<br>
c = 0;<br>
mat[f][c] = i1;<br>
c = c + 1;<br>
mat[f][c] = i2;<br>
c = c + 1;<br>
mat[f][c] = i3;<br>
c = c + 1;<br>
mat[f][c] = i4;<br>
c = c +1;<br>
mat[f][c] = i5;<br>
c = c + 1;<br>
mat[f][c] = i6;<br>
c = c + 1;<br>
mat[f][c] = i7;<br>
c = c + 1;<br>
mat[f][c] = i8;<br>
c = c + 1;<br>
mat[f][c] = i9;<br>
c = c + 1;<br>
mat[f][c] = i10;<br>
c = c + 1;<br>
mat[f][c] = i11;<br>
c = c + 1;<br>
mat[f][c] = i12;<br>
c = c + 1;<br>
mat[f][c] = i13;<br>
c = c + 1;<br>
mat[f][c] = i14;<br>
f = f + 1;<br>
}<br>
}<br>
}<br>
}<br>
}<br>
}<br>
}<br>
}<br>
}<br>
}<br>
}<br>
}<br>
}<br>
}<br>
}<br>
<br>
// Mostrar matriz<br>
<br>
for (f=0; f<nF; f++)<br>
{<br>
for (c=0; c<nC; c++)<br>
printf(" %d ", mat[f][c]);<br>
printf("\n");<br>
}<br>
<br>
printf("\nDesea imponer alguna condicion sobre esta matriz (s/n)?: ");<br>
scanf("%s", &seguir);<br>
if(siga != 'n')<br>
{<br>
for(f = 0; f <=nF; f++)<br>
{<br>
for (c=0; c<nC; c++)<br>
<br>
if (mat[f][c] == 1);<br>
<br>
//Como hago aqui para definir una rutina que me permita eliminar las filas que contengan al numero uno y me muestre las filas que no contengan<br>
//al numero uno, en forma de una matriz 15x14.<br>
<br>
}<br>
}<br>
<br>
/*Liberacion de memoria*/<br>
<br>
for(f = 0; f < nF; f++)<br>
free(mat[f]);<br>
free(mat);<br>
<br>
//getch();<br>
//return 0;<br>
}<br>
<br>
De verdad, les agradezco altamente toda la colaboracion que me puedan brindar para resolver este problemita.<br>
<br>
Muchas gracias de antemano a todos.<br>
<br>
Ali Rincon<br>
_______________________________________________<br>
Lista de correo Cconclase Cconclase@listas.conclase.net<br>
<A href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target=_blank>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</A><br>
Bajas: <A href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target=_blank>http://listas.conclase.net/index.php?gid=2&mnu=FAQ</A></DIV>
</BODY></HTML>