Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: axeelcs en 31 Agosto 2011, 21:39 pm



Título: Cargar una matriz de forma recursiva[c]
Publicado por: axeelcs en 31 Agosto 2011, 21:39 pm
Hola, buenas tardes, querías consultarles, ya que tengo que hacer este ejercicio con esta consigna :
Citar
1) Cargar una matriz de n filas y n columnas en forma recursiva. Generar un archivo con aquellos números primos. Mostrar dicho archivo.
Más que nada estoy teniendo problemas con el tema de cargar la matriz, lo estoy haciendo así :

Código:
int cargar_fila(int matriz[10][10],int n1,int n2)
{
 if(n2<0) return cargar_columna(matriz,n1,n2);

 printf("Ingrese el valor %d %d:",n1,n2);
 scanf("%d",&matriz[n1][n2]);

 return cargar_fila(matriz,n1,n2-1);
}

int cargar_columna(int matriz[10][10],int n1,int n2)
{
if(n1<0) return matriz[n1][n2];

return cargar_fila(matriz,--n1,n2-1);
}
Me quiero focalizar primero en hacer lo de la matriz, y despues lo del archivo.
Agradecería mucho si me pudieran ayudar en que me equivoco.
Muchas gracias de nuevo .


Título: Re: Cargar una matriz de forma recursiva[c]
Publicado por: LearningSpanishProgrammer en 1 Septiembre 2011, 05:15 am
Código:
void cargar_columna(int columnas[], int i, int tamano)
{
if(i >= tamano)
return;

printf("Ingrese el valor %d:");
scanf("%d", &columnas[i]);

return cargar_columna(columnas, i + 1, tamano);
}

Hice una parte, pero no podía testar, espero que ayude


Título: Re: Cargar una matriz de forma recursiva[c]
Publicado por: axeelcs en 1 Septiembre 2011, 17:51 pm
Claro, pero porque cargas a columna como si fuese un vector ?


Título: Re: Cargar una matriz de forma recursiva[c]
Publicado por: LearningSpanishProgrammer en 1 Septiembre 2011, 20:43 pm
Es un poco difícil de comprender... te voy mostrar un ejemplo

Código:
void imprime_vector(int * columnas, int n)
{
for (int i = 0; i < n; ++i)
printf("%d ", columnas[i]);
printf("\n");

}

int main()
{
int v[] = {1, 2, 3, 4, 5};
imprime_vector(v, 5);

int mat[][2] = { {1,2}, {3, 4}, {5, 6} };
imprime_vector((int*)&mat[1], 2);
return 0;
}

Es solo una maneira genérica de imprimir lo vector. Pero tu puedes cargar la matriz por completo, es más fácil.