您的位置:

方阵c语言代码,魔方阵c语言编程

本文目录一览:

螺旋方阵C语言编程

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

完全原创:

#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(n10):");

fflush(stdin);

scanf("%d",N);

if(N1||N=10)

{

printf("Error Input!\n");

system("pause");

continue;

}

for (i=1;i=N;i++)

{ for (j=1;j=N;j++)

{ r=i;d=0;pl=j-r;

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

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

if (rj) {r=j;d=3;pl=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);

}

求蛇形方阵c语言代码?

#include stdio.h

#define N 5 /*可改变数组大小*/

#define M 0 /*改变蛇形数组 方向*/

/*

M = 0

1 3 4

2 5 8

6 7 9

M = 1

1 2 6

3 5 7

4 8 9

*/

void main()

{

int x=0,y=0,b,k=1,i,j,w=1;

int s[N][N];

b = N*N;

s[0][0]=1;

for(i=2; i=b; i++)

{

if((y == 0) (x != (N-1)) (x%2 == (0+M)%2))

{

x++;

k = 1;

w = 0;

}

if((x == 0) (y != (N-1)) (y%2 == (1+M)%2))

{

y++;

k = 0;

w = 0;

}

if(x == (N-1) (y%2 == ((N%2+1)%2+M)%2))

{

y++;

k = 1;

w = 0;

}

if(y == (N-1) (x%2 == (N%2+M)%2) !( (x == N-1) (y == N-1) ) )

{

x++;

k = 0;

w = 0;

}

if((w == 1) (k == 1))

{

x--;

y++;

}

if((w == 1) (k == 0))

{

x++;

y--;

}

s[x][y] = i;

w = 1;

}

for(i=0; iN; i++)

{

for(j=0; jN; j++)

{

printf("%d\t",s[i][j]);

}

printf("\n");

}

}

c语言——方阵

#includestdio.h

#include "stdlib.h"

#include "string.h"

int s,n,a[101][101];

void fun(int x,int y){

a[x][y] = s;s++;

if(x == n - 1)

return;

if(a[x + 1][y] == 0){

fun(x + 1,y);

}

else fun(x,y + 1);

}

void main()

{

int i,j;

scanf("%d",n);

memset(a,0,sizeof(a));

a[n - 1][0] = 1;

s = 2;

for(i = n - 2;i = 0;i --){

fun(i,0);

}

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

for(j = 0;j n;j ++){

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

if(j != n - 1)

printf(" ");

}

printf("\n");

}

}

//自己按情况调一下字宽,嗯....加一下悬赏?

c语言编程数字矩形方阵

# include stdio.h

int main()

{

int i,j;

for(i=0;i6;i++){

for(j=0;j6;j++)

printf("%d ",(i+1)*(j+1));

printf("\n");

}

return 0;

}

拉丁方阵C语言编程

#include stdio.h

/* stdio.h就是指“standard inputoutput”本语句指包含标准输入输出头文件 例如“printf”包含在其中 */#define N 6

/* 其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。

“define”为宏定义命令,即用6表示置换所有的宏名N,然后再进行编译。

可以简单理解成若程序中遇到N,即为6 */ int main()

/* 定义main函数,main函数由系统直接调用,是程序执行的入口 */

{

int i, j;

/* 定义整型变量i,j */

for (i = 1; i = N; i++)

{

for (j = i; j N + i; j++)

printf("%3d", (j - 1) % N + 1);

/* %3d 显示数值宽度为3格,靠右对齐 */

printf("\n");

/* 输出回车 */

}

return 0;

}

/* ------------------------

重点介绍循环:

for (i = 1; i = N; i++)

由此可知i循环6次,每次取值分别为1、2、3、4、5、6;

for (j = i; j N + i; j++)

由此可知j进入循环的初始值即为每次i的值,循环次数为N,即6次第一次进入循环 for (i = 1; i = N; i++)

i=1:

第 1 次进入循环 for (j = i; j N + i; j++)

j=i , 即 j=1,

则 (j - 1) % N + 1 = 1

此时输出 " 1" 注意:1前面有2空格,因为数值宽度为3格

第 2 次进入循环 for (j = i; j N + i; j++)

此时 j=2,

则 (j - 1) % N + 1 = 2

此时输出 " 2"

第 3 次进入循环 for (j = i; j N + i; j++)

此时 j=3,

则 (j - 1) % N + 1 = 3

此时输出 " 3" 第 4 次进入循环 for (j = i; j N + i; j++)

此时 j=4,

则 (j - 1) % N + 1 = 4

此时输出 " 4"

第 5 次进入循环 for (j = i; j N + i; j++)

此时 j=5,

则 (j - 1) % N + 1 = 5

此时输出 " 5"

第 6 次进入循环 for (j = i; j N + i; j++)

此时 j=4,

则 (j - 1) % N + 1 = 6

此时输出 " 6" 执行 printf("\n") 即回车换行 ,此时屏幕上显示“ 1 2 3 4 5 6”;第二次进入循环 for (i = 1; i = N; i++)

i=2:

第 1 次进入循环 for (j = i; j N + i; j++)

j=i , 即 j=2,

则 (j - 1) % N + 1 = 2

此时输出 " 2"

第 2 次进入循环 for (j = i; j N + i; j++)

此时 j=3,

则 (j - 1) % N + 1 = 3

此时输出 " 3"

第 3 次进入循环 for (j = i; j N + i; j++)

此时 j=4,

则 (j - 1) % N + 1 = 4

此时输出 " 4" 第 4 次进入循环 for (j = i; j N + i; j++)

此时 j=5,

则 (j - 1) % N + 1 = 5

此时输出 " 5"

第 5 次进入循环 for (j = i; j N + i; j++)

此时 j=6,

则 (j - 1) % N + 1 = 6

此时输出 " 6"

第 6 次进入循环 for (j = i; j N + i; j++)

此时 j=7,

则 (j - 1) % N + 1 = 1

此时输出 " 1" 执行 printf("\n") 即回车换行 ,此时屏幕上显示 1 2 3 4 5 6

2 3 4 5 6 1感觉自己好傻,额,下面就不写啦,最后就是 1 2 3 4 5 6

2 3 4 5 6 1

3 4 5 6 1 2

4 5 6 1 2 3

5 6 1 2 3 4

6 1 2 3 4 5

----------------------------*/ 另外说一下,如果是正交拉丁方阵,6阶是不存在的!相信你知道的!呵呵

C语言输出12345方阵

大概想法就是,对角线上是1,对角线的夹角内分别是2,3,4,5四个方向

#include stdio.h

int main()

{

    int i, j, n;

    int a[21][21] = {0};

    scanf("%d", n);

    for(i = 0;i  n;i++)

    {   

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

        {

            if(i == j || (i+j) == n -1) 

                a[i][j] = 1;

            if(j  i  (i+j)  n -1) 

                a[i][j] = 2;

            if(j  i  (i+j)  n -1) 

                a[i][j] = 4;

            if(j  i  (i+j)  n -1) 

                a[i][j] = 3;

            if(j  i  (i+j)  n -1) 

                a[i][j] = 5;

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

        }

        printf("\n");

    }   

}