rellenar matrices en forma de caracol
espero que este sea el programa que necesitas :
// program k5a5.CPP - page 78
// fill a given matrix 7*7.
// caracol.cpp
// written in Borland CPP ver 4.5
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#define MAX 7
void Show(int a[][MAX])
{
for(int i = 0; i < MAX; i++)
{
for(int j = 0; j < MAX; j++)
cout << setw(5) << a[i][j];
cout << endl;
}
cout << endl;
} // SHOW
void Process()
{
int a[MAX][MAX],i,j,k = 1;
for(int delta = 1; delta < MAX/2 + 1; delta++)
{
i = j = delta - 1;
for(; j < MAX-delta; j++)
a[i][j] = k++;
for(; i < MAX-delta; i++)
a[i][j] = k++;
for(; j >= delta; j--)
a[i][j] = k++;
for(; i >= delta; i--)
a[i][j] = k++;
}
a[MAX/2][MAX/2] = MAX*MAX;
Show(a);
} // PROCESS
void main()
{
Process();
cout << "end of program - good bye ! ! !n";
} // MAIN
// program k5a5.CPP - page 78
// fill a given matrix 7*7.
// caracol.cpp
// written in Borland CPP ver 4.5
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#define MAX 7
void Show(int a[][MAX])
{
for(int i = 0; i < MAX; i++)
{
for(int j = 0; j < MAX; j++)
cout << setw(5) << a[i][j];
cout << endl;
}
cout << endl;
} // SHOW
void Process()
{
int a[MAX][MAX],i,j,k = 1;
for(int delta = 1; delta < MAX/2 + 1; delta++)
{
i = j = delta - 1;
for(; j < MAX-delta; j++)
a[i][j] = k++;
for(; i < MAX-delta; i++)
a[i][j] = k++;
for(; j >= delta; j--)
a[i][j] = k++;
for(; i >= delta; i--)
a[i][j] = k++;
}
a[MAX/2][MAX/2] = MAX*MAX;
Show(a);
} // PROCESS
void main()
{
Process();
cout << "end of program - good bye ! ! !n";
} // MAIN
