C语言数字螺旋方阵的形式

C语言数字螺旋方阵的形式,第1张

1、下面是一个毕租拍5*5阶的螺旋方阵。编程打印出此形式的n*n(n<=15)阶的方阵(顺时针方向旋进),n由键盘输入。

       ┌ 1  2  3  4  5 ┐

       │ 16 17 18 19 6 │

       │ 15 24 25 20 7 │

       │ 14 23 22 21 8 │

       └ 13 12 11 10 9 ┘

2、例程:

#include <stdio.h>

int get(int x, int y, int lt, int n)

{

    if(x == 0)

        return lt+y

    else if(y == 0)

        return lt+4*(n-1)-x

    else if(y == n-1)

        return lt+n+x-1

    else if(x == n-1)

        return lt+3*(n-1)-y

    else

        return get(x-1, y-1, lt+4*(n-1), n-2)

}

int main(void)

{

   型弯 int n, i, j

    scanf("%d", &n)

    for(i = 0 i < n ++i) {

        for(j = 0 j < n ++j)

            printf("%2d ", get(i, j, 1, n))

   手羡     putchar('\n')

    }

    return 0

}

给,已经编译运行确认了,

完全原创:

#include <stdio.h>

#include <stdlib.h>

void main( )

{

int i,j,r,l,b,d,pl,N

int choose

do

{

system("cls")

printf("\t\t************************************************\n")

printf("\t\t*********1. 阶数选择并打印*****************\n")

printf("\t\t*********2. 退出 *****************\n")

printf("\t\t************************************************\n")

printf("\t\tPlease input your choose:")

fflush(stdin)

scanf("%d",&choose)

if(choose==2) break

else if(choose==1)

{

printf("迅迟Input n(n<10):"亩配李)

fflush(stdin)

scanf("%d",&N)

if(N<1||N>=10)

{

printf("Error Input!\n")

system("pause"卖慧)

continue

}

for (i=1i<=Ni++)

{ for (j=1j<=Nj++)

{ r=id=0pl=j-r

if (r>N-j+1) {r=N-j+1d=1pl=i-r}

if (r>N-i+1) {r=N-i+1d=2pl=N-j+1-r}

if (r>j) {r=jd=3pl=N-i+1-r}

l=N-2*(r-1)-1

b=(4*N-4)*(r-1)-4*(r-1)*(r-2)+1

printf("%4d",b+l*d+pl)

}

printf("\n")

}

system("pause")

}

else

{

printf("Error Input!\n")

system("pause")

continue

}

}while(1)

}

#include<握埋塌stdio.h>

#define N 6

int main(void)

{

int i=0,j=0,m=0,n=0,num=0

int a[N][N]

do

{

for(i=mi<N-mi++)

a[i][j]=++num

--i

if(num==N*N)break

for(j=m+1j<N-mj++)

a[i][j]=++num

j--

if(num==N*N)break

for(i=N-m-2i>液租=mi--)

a[i][j]=++num

i++

if(num==N*N)break

for(j=N-m-2j>mj--)

a[i][j]=++num

j++

if(num==N*N)break

++m

}while(num<N*N)

printf("\t\t%d行%d列段圆螺旋矩阵\n\n",N,N)

for(i=0i<Ni++)

{

for(j=0j<Nj++)

printf("%6d",a[i][j])

printf("\n")

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12241101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存