Hola Ali:<div><br></div><div>Antes de analizar tu último código detenidamente, te comento:</div><div><br></div><div>¿Has tenido en cuenta que el tamaño de la matriz que estás considerando es muy grande?</div><div>¿Has tenido en cuenta si el tamaño de tu matriz entra en la memoria RAM de tu ordenador?</div>
<div>Multiplica el número de filas, por el número de columnas y por el tamaño de un entero sizeof(int) con el fin de obtener el tamaño de la matriz.erá </div><div>¿Tu aplicación necesitará determinar el tamaño de la matriz y solicitar ese tamaño al sistema operativo o será suficiente utilizar una matriz de un tamaño predeterminado antes de la ejecución del programa (aunque no utilices todo ese tamaño)?</div>
<div>Ten en cuenta que el factorial de 10 es 3628800.</div><div><br></div><div>Saludos</div><div>José Luis</div><div><br></div><div><br></div><div><br><br><div class="gmail_quote">El 20 de octubre de 2012 05:16, Ali Rincon <span dir="ltr"><<a href="mailto:alrincon1963@hotmail.com" target="_blank">alrincon1963@hotmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Estimado amigo Jose Luis:  Muchas gracias por ayudarme a resolver el ejercicio. Tu codigo es correcto, especialmente la linea 21, f=0; la cual "sacaste" del bucle de for. Excelente paso. Yo solamente le hice una pequeña modificacion, de manera de ver mas claramente la notacion matricial y fue esta:<br>

<br>
#include <stdio.h><br>
#include <stdlib.h><br>
<br>
/*Programa que calcula las combinaciones de 3 numeros tomados de 2 en 2 y el resultado lo expresa en forma de una matriz 3x2*/<br>
/*Autor: Jose Luis Torres*/<br>
<div class="im"><br>
int main()<br>
<br>
{<br>
    int i, j;<br>
<br>
    int f ; // Fila<br>
<br>
    int c ; // Columna<br>
<br>
    const int nF = 3; // Número de filas<br>
<br>
    const int nC = 2; // Número de columnas<br>
<br>
    int mat[nF][nC];<br>
<br>
    f = 0;<br>
<br>
    for (i = 1; i <= 3; i++)<br>
    {<br>
        for (j = i + 1; j <= 3; j++)<br>
        {<br>
            if(i != j)<br>
            {<br>
                c = 0;<br>
<br>
</div><div class="im">                    mat[f][c] = i;<br>
<br>
                    c = c + 1;<br>
<br>
                    mat[f][c] = j;<br>
<br>
                    f = f + 1;<br>
            }<br>
        }<br>
    }<br>
<br>
    // Mostrar matriz<br>
<br>
    for (f=0; f<nF; ++f)<br>
    {<br>
        for (c=0; c<nC; ++c)<br>
<br>
</div>            printf(" %d ",mat[f][c]);<br>
            printf("\n");<br>
<div class="im"><br>
    }<br>
<br>
    system("pause");<br>
<br>
    return 0;<br>
}<br>
<br>
</div>lo cual podrás ver fácilmente. Luego lo extendí para las combinaciones tomadas de 4 en 4, y el código resulto ser, por analogía:<br>
<br>
#include <stdio.h><br>
#include <stdlib.h><br>
<br>
//CombArrays4<br>
/*Programa que calcula las combinaciones de 6 numeros tomados de 4 en 4 y el resultado lo expresa en forma de una matriz 15x4*/<br>
<br>
int main()<br>
<br>
{<br>
    int i1, i2, i3, i4;<br>
<div class="im"><br>
    int f; // fila<br>
<br>
    int c; // columna<br>
<br>
</div>    int nF = 15; // número de filas<br>
<br>
    int nC = 4; // número de columnas<br>
<br>
    //const int nF = 15; // número de filas<br>
<br>
    //const int nC = 4; // número de columnas<br>
<div class="im"><br>
    int mat[nF][nC];<br>
<br>
    f = 0;<br>
<br>
</div>    for (i1 = 20; i1 <= 25; i1++)<br>
    {<br>
        for (i2 = i1 + 1; i2 <= 25; i2++)<br>
        {<br>
            for (i3 = i2 + 1; i3 <= 25; i3++)<br>
            {<br>
                for (i4 = i3 + 1; i4 <= 25; i4++)<br>
                {<br>
                    if ((i1 != i2) && (i1 != i3) && (i1 != i4) && (i2 != i3) && (i2 != i4) && (i3 != i4))<br>
<br>
                    c = 0;<br>
<br>
                    mat[f][c] = i1;<br>
<div class="im"><br>
                    c = c + 1;<br>
<br>
</div>                    mat[f][c] = i2;<br>
<div class="im"><br>
                    c = c + 1;<br>
<br>
</div>                    mat[f][c] = i3;<br>
<div class="im"><br>
                    c = c + 1;<br>
<br>
</div>                    mat[f][c] = i4;<br>
<div class="im"><br>
                    f = f + 1;<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>
<br>
</div>            printf(" %d ",mat[f][c]);<br>
            printf("\n");<br>
<br>
    }<br>
    getchar();<br>
    return 0;<br>
}<br>
Ambos códigos corren muy bien, Pero cuando lo extendi, aun mas, precisamente a donde quiero llegar:<br>
<br>
#include <stdio.h><br>
#include <stdlib.h><br>
<br>
//CombArray15<br>
/*Programa que calcula las combinaciones de 25 numeros tomados de 15 en 15 y expresa estas combinaciones en forma matricial*/<br>
<br>
int main()<br>
{<br>
    int i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15;<br>
    int f; // Fila<br>
    int c; // Columna<br>
    int nF = 3268760; // Número de filas<br>
    int nC = 15; // Número de columnas<br>
<div class="im">    int mat[nF][nC];<br>
<br>
    f = 0;<br>
<br>
</div>    for (i1 = 1; i1 <= 25; i1++)<br>
    {<br>
        for (i2 = i1 + 1; i2 <= 25; i2++)<br>
        {<br>
            for (i3 = i2 + 1; i3 <= 25; i3++)<br>
            {<br>
                for (i4 = i3 + 1; i4 <= 25; i4++)<br>
                {<br>
                    for (i5 = i4 + 1; i5 <= 25; i5++)<br>
                    {<br>
                        for (i6 = i5 + 1; i6 <= 25; i6++)<br>
                        {<br>
                            for (i7 = i6 + 1; i7 <= 25; i7++)<br>
                            {<br>
                                for (i8 = i7 + 1; i8 <= 25; i8++)<br>
                                {<br>
                                    for (i9 = i8 + 1; i9 <= 25; i9++)<br>
                                    {<br>
                                        for (i10 = i9 + 1; i10 <= 25; i10++)<br>
                                        {<br>
                                            for (i11 = i10 + 1; i11 <= 25; i11++)<br>
                                            {<br>
                                                for (i12 = i11 + 1; i12 <= 25; i12++)<br>
                                                {<br>
                                                    for (i13 = i12 + 1; i13 <= 25; i13++)<br>
                                                    {<br>
                                                        for (i14 = i13 + 1; i14 <= 25; i14++)<br>
                                                        {<br>
                                                            for (i15 = i14 + 1; i15 <= 25; i15++)<br>
                                                            {<br>
                                                                if ((i1 != i2) && (i1 != i3) && (i1 != i4) && (i1 != i5) && (i1 != i6) && (i1 != i7) &&<br>
                                                                    (i1 != i8) && (i1 != i9) && (i1 != i10) && (i1 != i11) && (i1 != i12) && (i1 != i13) &&<br>
                                                                    (i1 != i14) && (i1 != i15) && (i2 != i3) && (i2 != i4) && (i2 != i5) && (i2 != i6) &&<br>
                                                                    (i2 != i7) && (i2 != i8) && (i2 != i9) && (i2 != i10) && (i2 != i11) && (i2 != i12) &&<br>
                                                                    (i2 != i13) && (i2 != i14) && (i2 != i15) && (i3 != i4) && (i3 != i5) && (i3 != i6) &&<br>
                                                                    (i3 != i7) && (i3 != i8) && (i3 != i9) && (i3 != i10) && (i3 != i11) && (i3 != i12) &&<br>
                                                                    (i3 != i13) && (i3 != i14) && (i3 != i15) && (i4 != i5) && (i4 != i6) && (i4 != i7) &&<br>
                                                                    (i4 != i8) && (i4 != i9) && (i4 != i10) && (i4 != i11) && (i4 != i12) && (i4 != i13) &&<br>
                                                                    (i4 != i14) && (i4 != i15) && (i5 != i6) && (i5 != i7) && (i5 != i8) && (i5 != i9) &&<br>
                                                                    (i5 != i10) && (i5 != i11) && (i5 != i12) && (i5 != i13) && (i5 != i14) && (i5 != i15) &&<br>
                                                                    (i6 != i7) && (i6 != i8) && (i6 != i9) && (i6 != i10) && (i6 != i11) && (i6 != i12) &&<br>
                                                                    (i6 != i13) && (i6 != i14) && (i6 != i15) && (i7 != i8) && (i7 != i9) && (i7 != i10) &&<br>
                                                                    (i7 != i11) && (i7 != i12) && (i7 != i13) && (i7 != i14) && (i7 != i15) && (i8 != i9) &&<br>
                                                                    (i8 != i10) && (i8 != i11) && (i8 != i12) && (i8 != i13) && (i8 != i14) && (i8 != i15) &&<br>
                                                                    (i9 != i10) && (i9 != i11) && (i9 != i12) && (i9 != i13) && (i9 != i14) && (i9 != i15) &&<br>
                                                                    (i10 != i11) && (i10 != i12) && (i10 != i13) && (i10 != i14) && (i10 != i15) &&<br>
                                                                    (i11 != i12) && (i11 != i13) && (i11 != i14) && (i11 != i15) && (i12 != i13) &&<br>
                                                                    (i12 != i14) && (i12 != i15) && (i13 != i14) && (i13 != i15) && (i14 != i15))<br>
<br>
                                                                    c = 0;<br>
                                                                    mat[f][c] = i1;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i2;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i3;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i4;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i5;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i6;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i7;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i8;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i9;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i10;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i11;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i12;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i13;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i14;<br>
<div class="im">                                                                    c = c + 1;<br>
</div>                                                                    mat[f][c] = i15;<br>
<div class="im">                                                                    f = f + 1;<br>
<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>
</div>            printf(" %d ",mat[f][c]);<br>
            printf("\n");<br>
    }<br>
    return 0;<br>
<br>
el programa no funciona bien,es decir, corre pero no arroja ningún valor, como los dos código anteriores. Te pido si lo puedes mirar y examinar, y darme alguna idea del porqué no da ningún valor, es decir, por que no corre bien.<br>

<br>
Muchisimas gracias, amigo por las ayudas que me has brindado,<br>
<br>
Muy atentamente,<br>
<br>
Ali Rincon.<br>
Venezuela.<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
El pasado 2012-10-17 17:26:30, jiptohej escribió:<br>
<br>
j> Entendido, a continuación te muestro un código que lo hace (no utilizo<br>
j> funciones definidas por el usuario)<br>
<div class="im">j> #include <stdio.h><br>
j> #include <stdlib.h><br>
j> int main()<br>
j> {<br>
j>     int i, j;<br>
</div>j>     int f ; // fila<br>
j>     int c ; // columna<br>
<div class="im">j>     const int nF = 3; // número de filas<br>
j>     const int nC = 2; // número de columnas<br>
j>     int mat[nF][nC];<br>
</div>j>     f = 0;<br>
<div class="im">j>     for (i = 1; i <= 3; i++)<br>
j>     {<br>
j>         for (j = i + 1; j <= 3; j++)<br>
j>             if(i != j)<br>
</div>j>             {<br>
j>                c = 0;<br>
<div class="im">j>                printf("[%d %d] \n", i , j);<br>
</div>j>                mat[f][c] = i;<br>
j>                c = c + 1;<br>
j>                mat[f][c] = j;<br>
<div class="im">j>                f = f + 1;<br>
</div>j>             }<br>
j>     }<br>
j>     // mostrar matriz<br>
j>     for (f=0; f<nF; ++f)<br>
j>     {<br>
j>         for (c=0; c<nC; ++c)<br>
j>         {<br>
j>             printf("fila:%d columna:%d mat[%d][%d]=%d\n", f, c, f, c,<br>
j> mat[f][c]);<br>
j>         }<br>
j>     }<br>
j>     system("pause");<br>
j>     return 0;<br>
j> }<br>
<div class="im">j> Saludos<br>
j> José Luis<br>
</div>j> El 17 de octubre de 2012 16:58, Ali Rincon <<a href="mailto:alrincon1963@hotmail.com">alrincon1963@hotmail.com</a>>escribió:<br>
j> > No, no es un ejercicio de clase. Es un proyecto de programación que pienso<br>
j> > llevar adelante, y lo estoy haciendo poco a poco. Acuérdate que te dije que<br>
j> > me estoy iniciando. No es mi área de especialización. Pero la necesidad<br>
j> > aquí en Venezuela nos obliga a buscar caminos que nos puedan traer<br>
j> > dividendos económicos extras, pues nuestro país esta devastado<br>
j> > económicamente.<br>
j> ><br>
j> > Te expreso mi gratitud por tu amable ayuda.<br>
<div class="im">j> ><br>
j> > Ali Rincon<br>
j> ><br>
</div>j> ><br>
j> ><br>
j> > El pasado 2012-10-17 10:20:12, jiptohej escribió:<br>
j> ><br>
j> > j> Hola Ali:<br>
j> > j> Espero que no sea un ejercicio de clase, de todas formas te explico cómo<br>
j> > j> puedes hacerlo.<br>
j> > j> Dado que sabes cuál tiene que ser el resultado, lo único que tienes que<br>
j> > j> hacer es definir una matriz para almacenar dicho resultado.<br>
j> > j> Haciéndolo de forma burda, si defines una matriz del siguiente modo:<br>
j> > j>     const int nF = 3; // número de filas<br>
j> > j>     const int nC = 2; // número de columnas<br>
j> > j>     int mat[nF][nC];<br>
j> > j>   lo que tendrías que hacer es almacenar lo siguiente:<br>
j> > j> mat[0][0] = 1; mat[0][1]=2;<br>
j> > j> mat[1][0] = 1; mat[1][1]=3;<br>
j> > j> mat[2][0] = 2; mat[2][1]=3;<br>
j> > j> dado que en cada línea imprimes i y j, puedes ponerlo de este modo:<br>
j> > j> mat[0][0] = i; mat[0][1]=j;<br>
j> > j> mat[1][0] = i; mat[1][1]=j;<br>
j> > j> mat[2][0] = i; mat[2][1]=j;<br>
j> > j> dado que los valores los obtienes el 3 líneas y tienes filas en la<br>
j> > matriz,<br>
j> > j> puedes generalizar lo anterior<br>
j> > j> f=0<br>
j> > j> mat[f][0] = i; mat[f][1]=j;<br>
j> > j> f= f+1;<br>
j> > j> mat[f][0] = i; mat[f][1]=j;<br>
j> > j> f=f+1<br>
j> > j> mat[f][0] = i; mat[f][1]=j;<br>
j> > j> En fín, creo que con esto puedes terminarlo.<br>
j> > j> Saludos<br>
j> > j> José Luis<br>
j> > j> El 17 de octubre de 2012 03:48, Ali Rincon <<a href="mailto:alrincon1963@hotmail.com">alrincon1963@hotmail.com</a><br>
j> > >escribió:<br>
j> > j> > Hola a Todos. Disculpen mi ignorancia sobre el tema, pero como soy<br>
j> > nuevo<br>
j> > j> > en programacion en C, necesito pedirles ayuda en un ejercicio el cual<br>
j> > no he<br>
j> > j> > podido resolver, y que a lo mejor resulta trivial para algunos de Uds.<br>
j> > j> > Necesito expresar (u obtener) las combinaciones del siguiente codigo:<br>
<div class="im">j> > j> ><br>
j> > j> > #include <stdio.h><br>
j> > j> > #include <stdlib.h><br>
j> > j> ><br>
j> > j> > int main()<br>
</div>j> > j> > {<br>
<div class="im">j> > j> > int i, j;<br>
j> > j> ><br>
j> > j> > for (i = 1; i <= 3; i++)<br>
</div>j> > j> > {<br>
<div class="im">j> > j> > for (j = i + 1; j <= 3; j++)<br>
</div>j> > j> > if(i != j)<br>
j> > j> > printf("[%d %d] \n", i , j);<br>
<div class="im">j> > j> > }<br>
j> > j> > return 0;<br>
j> > j> > }<br>
</div>j> > j> ><br>
<div class="im">j> > j> > en forma de un arreglo, es decir, en una matriz 3x2. Al compilar el<br>
</div>j> > j> > ejercicio anterior, la salida que produce es:<br>
<div class="im">j> > j> ><br>
j> > j> > [1 2]<br>
</div>j> > j> > [1 3]<br>
j> > j> > [2 3]<br>
j> > j> ><br>
<div class="im">j> > j> > Necesito que este resultado se exprese en forma de una matriz 3x2, y<br>
</div>j> > no se<br>
j> > j> > hacerlo. O dicho de otra forma, los elementos de la matriz 3x2 deben<br>
j> > ser<br>
j> > j> > los anteriores resultados. Puede alguien ayudarme a resolverlo??<br>
<div class="im">j> > j> ><br>
j> > j> > Muchisimas gracias por la ayuda que me puedan brindar,<br>
j> > j> ><br>
j> > j> > Ali Rincon<br>
</div>j> > j> > _______________________________________________<br>
j> > j> > Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
j> > j> ><br>
j> > <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>
j> > j> > 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><br>
j> > j> ><br>
j> > j> --<br>
j> > j> José Luis Torre<br>
j> > j> <a href="http://ww.ehu.es" target="_blank">ww.ehu.es</a><br>
j> > j> _______________________________________________<br>
j> > j> Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
j> > j><br>
j> > <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>
j> > j> 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><br>
<div class="HOEnZb"><div class="h5">j> > _______________________________________________<br>
j> > Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
j> > <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>
j> > 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><br>
j> ><br>
j> --<br>
j> José Luis Torre<br>
j> <a href="http://ww.ehu.es" target="_blank">ww.ehu.es</a><br>
j> _______________________________________________<br>
j> Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
j> <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>
j> 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><br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><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><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>José Luis Torre</div>
<div><a href="http://ww.ehu.es/" target="_blank">ww.ehu.es</a></div>
<div> </div><br>
</div>