
回文方阵
#include<stdio.h>
#include<string.h>
int a[100][100];
int main()
{
int n;
while(~scanf("%d",&n)){
memset(a,0,sizeof(a));
int k = 1,x = 1,y = n-1,i,j;
while(k<=n*n)
{
while(y<n&&!a[x][y+1]) a[x][++y] = k++;
while(x<n&&!a[x+1][y]) a[++x][y] = k++;
while(y>1&&!a[x][y-1]) a[x][--y] = k++;
while(x>1&&!a[x-1][y]) a[--x][y] = k++;
}
for( i = 1; i <= n; i++)
{
for( j = 1; j <= n; j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
}
memset函数
memset作用是将某一块内存中的内容全部设置为指定的值,void *memset(void*s,int ch,size_t n);将s中当前位置后面的n个字节用ch替换并返回s。
包含在头文件#include<string.h>中
它常用于内存空间初始化,用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化,比如memsrt(a,'\0',sizeof(a));它是对较大的结构体或数组(通常是字符数组)进行清零操作的一种最快方法
本文介绍如何使用C语言实现一个回文方阵,通过memset函数初始化数组,并详细解释了矩阵生成的过程。重点在于理解如何利用四个方向遍历确保数组元素的对称性。
11万+

被折叠的 条评论
为什么被折叠?



