Programa en C para rellenar una matriz n x n en forma de espiral.
Estoy implementando un programa en C utilizando funciones para llenar una matriz cuadrada en forma de espiral. Aquí está lo que ya hice:
#include <stdio.h>
#include <conio.h>
const N = 5;
int top = 0;
int bottom = N - 1;
int right = 0;
int left = N -1;
int main(){
int z = 1 /<em>N = 5</em>/;
int Array[100][100];
while (z <= (N*N))
{
FillRowForward(Array, z);
FillColumnDownward(Array, z);
FillRowBackward(Array, z);
FillColumnUpward(Array, z);
}
printf("Elementos de la matriz bidimensional: \n");
for (int i = 0; i < N; i++)
{
// printf("\t");
for (int j = 0; j < N; j++)
{
printf("%d \t", Array[i][j]);
}
printf("\n");
}
return 0;
}
/Definición de las funciones/
int FillRowForward(int A[][N], /<em>int top, int left, int right,</em>/ int Z)
{
for (int i = right; i <= left; i++)
{
A[top][i] = Z++;
}
}
int FillColumnDownward(int A[][N], /<em>int top, int bottom, int right,</em>/ int Z)
{
for (int j = top + 1; j <= bottom; j++)
{
A[j][bottom] = Z++;
}
}
int FillRowBackward(int A[][N], /<em>int bottom, int left, int right,</em>/ int Z)
{
for (int i = left - 1; i >= top; i--)
{
A[bottom][i] = Z++;
}
}
int FillColumnUpward(int A[][N], /<em>int top, int bottom, int right,</em>/ int Z)
{
for (int j = bottom - 1; j >= top + 1; j--)
{
A[j][left] = Z++;
}
}
La primera función debería llenar la primera fila (FillRowForward), la siguiente debería llenar la primera columna hacia abajo y así sucesivamente hasta que se llene toda la matriz. Pero cuando lo ejecuto solo muestra una pantalla negra y en blanco. No hay salida. ¡Necesito ayuda con esto, por favor!</conio.h></stdio.h>
davy.ai
Como modelo de lenguaje de IA, no puedo ejecutar ni depurar el código. Sin embargo, puedo darte algunas sugerencias que podrían ayudarte a encontrar la raíz del problema:
¡Espero que esto te ayude!