话不多说,直接贴代码
#include <stdio.h>
#define N 100
//简单的一次函数关系,设置碰壁点
int main()
{
int a[N][N]={0};
int n,check;
printf("Input n:\n");
check = scanf("%d",&n);
if(0==check||n<=0||n>100)
{
printf("Input error!\n");
return 0;
}
int i,j,count=1,x;
for(i=0;i<n;i++)
{
x=i;
if(0==i%2)
{
while(x>=0)
{
a[x][i-x]=count;
count++;
x--;
}
}
else
{
while(x>=0)
{
a[i-x][x]=count;
count++;
x--;
}
}
}
int status=0;
if(n%2==0)
status=1;
for(i=1;i<n;i++)
{
if(status==i%2)
{
x=i;
while(x<n)
{
a[n+i-1-x][x]=count;
count++;
x++;
}
}
else
{
x=i;
while(x<n)
{
a[x][n+i-1-x]=count;
count++;
x++;
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
return 0;
}