33,319
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
void getData(int **data, int n)
{
int i = 0, j = 0, k;
int num = 1, count = n;
do
{
for(k = 0; k < count; ++k)
{
data[i][j++] = num++;
}
--count;
--j;
for(k = 0; k < count; ++k)
{
data[++i][--j] = num++;
}
--count;
for(k = 0; k < count; ++k)
{
data[--i][j] = num++;
}
--count;
++j;
}while(count > 0);
}
void printData(int **data, int n)
{
int i, j;
for(i = 0; i < n; ++i)
{
for(j = 0; j < n; ++j)
{
printf("%4d", data[i][j]);
}
printf("\n");
}
}
int main()
{
int **data, n, i, j;
scanf("%d", &n);
data = (int**)malloc(sizeof(int*)*n);
for(i = 0; i < n; ++i)
data[i] = (int*)malloc(sizeof(int)*n);
for(i = 0; i < n; ++i)
{
for(j = 0; j < n; ++j)
{
data[i][j] = 0;
}
}
getData(data, n);
printData(data, n);
for(i = 0; i < n; ++i)
free(data[i]);
free(data);
system("pause");
return(0);
}