题目:
N=5的情况下,输出结果如下:
?
1??? 2???9???10? 25
4??? 3???8???11? 24
5??? 6???7???12? 23
16? 15?14?13? 22
17? 18 19?20? 21
?
要求N可以为任意数,写出输出此阵列的代码段;
我写出的代码如下:
#include <stdio.h>
#define N 5
void main()
{
?int nArr[N][N]={0};
?int i,j,value=1;
?for(i=0;i<N;i++)
?{
??if(i%2==1)
??{
???for(j=0;j<i;j++)
???{
????nArr[j][i]=value++;
???}
???for(j=i;j>=0;j--)
???{
????nArr[i][j]=value++;
???}
??}
??else
??{
???for(j=0;j<i;j++)
???{
????nArr[i][j]=value++;
???}
???for(j=i;j>=0;j--)
???{
????nArr[j][i]=value++;
???}
??}
?}
?
?for(i=0;i<N;i++)
?{
??for(j=0;j<N;j++)
??{
???printf("%-2d ",nArr[i][j]);
??}
??printf("\n");
?}
}