Cargar una matriz de forma recursiva[c]

Iniciado por axeelcs, 31 Agosto 2011, 21:39 PM

0 Miembros y 1 Visitante están viendo este tema.

axeelcs

Hola, buenas tardes, querías consultarles, ya que tengo que hacer este ejercicio con esta consigna :
Citar1) 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í :

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 .

LearningSpanishProgrammer


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
Estoy aprendiendo español, y tu estas aprendiendo programación

axeelcs

Claro, pero porque cargas a columna como si fuese un vector ?

LearningSpanishProgrammer

Es un poco difícil de comprender... te voy mostrar un ejemplo


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.
Estoy aprendiendo español, y tu estas aprendiendo programación