69,371
社区成员
发帖
与我相关
我的任务
分享
include <stdio.h>
#define N 3
int main()
{
int irow = 0;
int icol = 0;
int inum = 1;
int icount = N -1;
int imove_num = 0;
int array[N][N];
(void)memset(array, 0, sizeof(array));
do
{
for (imove_num = 0; imove_num < icount; imove_num++)
{
array[irow][icol] = inum++;
icol++;
}
for (imove_num = 0; imove_num < icount; imove_num++)
{
array[irow][icol] = inum++;
irow++;
}
for (imove_num = 0; imove_num < icount; imove_num++)
{
array[irow][icol] = inum++;
icol--;
}
for (imove_num = 0; imove_num < icount; imove_num++)
{
array[irow][icol] = inum++;
irow--;
}
irow++;
icol++;
icount = icount - 2;
}while (icount > 0);
if (0 == icount)
{
array[irow][icol] = inum;
}
for (irow = 0 ; irow < N ; irow++)
{
for (icol = 0 ; icol < N;icol++)
{
printf("%5d", array[irow][icol]);
}
printf("\n");
}
return 1;
}
#include <stdio.h>
#define N 100
void print(int a[][N],int n);
int main()
{
int arr[N][N],r1,r2,c1,c2,i,j,n,k;
printf("Input n:");
scanf("%d",&n);
r1=0;//第一行
c1=0;//第一列
r2=n-1;//最后行
c2=n-1;//最后列
i=1;
k=n*n;
while(1)//每次填充四个最外的边
{
for(j=c1;j<=c2;j++)
{
arr[r1][j]=i++;
}
if(i>k)
{
break;
}
r1++;
for(j=r1;j<=r2;j++)
{
arr[j][c2]=i++;
}
if(i>k)
{
break;
}
c2--;
for(j=c2;j>=c1;j--)
{
arr[r2][j]=i++;
}
if(i>k)
{
break;
}
r2--;
for(j=r2;j>=r1;j--)
{
arr[j][c1]=i++;
}
if(i>k)
{
break;
}
c1++;
}
print(arr,n);
return 0;
}
void print(int a[][N],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("\n");
}
int main(int argc,char **argv)
{
int N=atoi(argv[1]);
int n=N*N;
int ceng=1;
int k;
int a[N][N];
int i=N/2,j=(N-1)/2;
if(N%2==0){
a[i][j++]=n--; //rinht
a[i--][j]=n--; //up
a[i][j--]=n--; //left
a[i][j--]=n--; //left
ceng=3;
}
else{
a[i][j--]=n--;
ceng=2;
}
for(;n>0;ceng+=2){
for(k=0;k<ceng-1;k++)
a[i++][j]=n--;
for(k=0;k<ceng;k++)
a[i][j++]=n--;
for(k=0;k<ceng;k++)
a[i--][j]=n--;
for(k=0;k<ceng+1;k++)
a[i][j--]=n--;
}
for(i=0;i<N;i++){
for(j=0;j<N;j++)
printf("%d\t", a[i][j]);
printf("\n");
}
return 0;
}
#include <iostream>
using namespace std;
void main()
{
int N;
cin >> N;
int a = 1;
for (int i = 0;i < N;i++)
{
for (int j = 0;j < N;j++)
{
cout << a << " ";
a++;
}
cout << endl;
}
}