导航:首页 > 废水知识 > 用c语言写一个回形方阵

用c语言写一个回形方阵

发布时间:2023-03-05 12:54:25

㈠ c语言 输出字符回形阵

#include<stdio.h>
void main()
{int i,j,N;
char k,b,c,d,a;
scanf("%d %c",&N,&k);
if(N%2==0)
printf("%d is not a odd number!\n",N);
else if(N<24)
{ for(i=1;i<=N;i++)
{ for(j=1;j<=N;j++)
{ b=k-N/2+i-1;
c=k-N/2+N-j;
d=k-N/2+j-1;
a=k-N/2+N-i;
if(i<=j && i<=(N-j+1))
{if(k<=90 && b<=64) b=90-(64-b)%26;
if(k>=97 && b<=96) b=122-(96-b)%26;
printf("%c",b);}
if(i<=j && i>(N-j+1))
{if(k<=90 && c<=64) c=90-(64-c)%26;
if(k>=97 && c<=96) c=122-(96-c)%26;
printf("%c",c);}
if(i>j && i<=(N-j+1))
{if(k<=90 && d<=64) d=90-(64-d)%26;
if(k>=97 && d<=96) d=122-(96-d)%26;
printf("%c",d);}
if(i>j && i>(N-j+1))
{if(k<=90 && a<=64) a=90-(64-a)%26;
if(k>=97 && a<=96) a=122-(96-a)%26;
printf("%c",a);}
if(j!=N) printf(" ");}
printf("\n");}
}
}
好吧这不是我写的,但是呢,的确是正确答案........我抄同学的,已经提交了,是对的。

㈡ 想用c语言实现 回形数组 代码该怎么编写

#include<stdio.h>

#defineN100

/*实现回形数组*/

intmain()
{
intarray[N][N];
intdimension;
inti,j,num,start,end;

scanf("%d",&dimension);//输入回形数组维度。

num=0;
for(i=0;i<dimension;i++){
for(j=0;j<dimension;j++){
printf("%3d",num++);
}
printf(" ");
}
printf(" ");

num=1;
start=0;
end=dimension;
while(1){
for(i=j=start;j<end;j++){//上行
array[i][j]=num++;
}

for(i++,j--;i<end;i++){//右列
array[i][j]=num++;
}

for(i--,j--;j>=start;j--){//下行
array[i][j]=num++;
}

for(i--,j++;i>start;i--){//左列
array[i][j]=num++;
}

start++;
end--;

if(start>=end)
break;
}

/*打印*/
for(i=0;i<dimension;i++){
for(j=0;j<dimension;j++){
printf("%3d",array[i][j]);
}
printf(" ");
}
return0;
}

㈢ 编程二维数组回形遍历如何写程序(C语言)

呵呵,我以前写过,是用java写的,给你看下java源码,以供参考,希望对你有帮助.
java与c++语法差不多,入口是main()方法

package test;

/**
* 打印回行图案
16 15 14 13
5 4 3 12
6 1 2 11
7 8 9 10
* @author zhanngle
*
*/
public class Round {

public static void main(String[] args) {
int row=10; //几行
int col=10; //几列
int[][] a=new int[row][col];

fill(a,row,col,0,0);
print(a);
}

/**
* 填写最外一圈的数据,如果还有内圈数据,则递归调用本身继续填写内圈数据,直到填写完毕
* @param a
* @param row
* @param col
* @param i
* @param j
*/
private static void fill(int [][] a,int row,int col,int i,int j) {

int n=row*col;
for(int c=0;c<=col-1;c++) { //横向填充数值
a[i][j+c]=n-c; //在首行从左到右填值
if(row!=1)
a[i+row-1][j+c]=n-(col*2+row-3)+c; //如果不只1行,在末行从左到右填值
}

for(int r=0;r<row-2;r++) { //竖向填充数值
a[i+row-2-r][j]=a[i+row-1][j]-r-1; //在首列从下往上填值
if(col!=1) //如果不只1列,大末列从下往上填值
a[i+row-2-r][j+col-1]=a[i+row-1][j+col-1]+r+1;
else //否则覆盖首列数据
a[i+row-2-r][j]=a[i+row-1][j]+r+1;
}

if(row-2>0 && col-2>0) fill(a,row-2,col-2,i+1,j+1); //如果还没填完数据,则递归填写
}

/**
* 打印二维数组
* @param a
*/
private static void print(int[][] a) {

for(int i=0;i<a.length;i++) {
for(int j=0;j<a[0].length;j++) {
System.out.printf("%4d",a[i][j]);
}
System.out.println();
}
}
}

阅读全文

与用c语言写一个回形方阵相关的资料

热点内容
下列几组用半透膜隔开 浏览:494
污水处理池池上漂泥怎么办 浏览:301
mumu模拟器提升帧数 浏览:459
底部过滤鱼缸尺寸 浏览:706
水垢太阳能水箱清洗剂 浏览:221
疫情期间广州回沈阳用隔离吗 浏览:532
为什么总是喝纯水对身体有害 浏览:359
怎么拆电动剃须刀过滤网 浏览:753
新速派空调滤芯正品哪里买 浏览:993
污水厂叫什么名字 浏览:635
桑夏净水器怎么换净水滤芯 浏览:696
纯水不导电是因为水中有什么离子 浏览:607
废水中固体污染物的指标 浏览:564
3m直饮水机水管怎么和龙头连接 浏览:763
万州卫生间漏水处理 浏览:756
江苏省污水处理工培训 浏览:480
格力kfr23gw怎么拆过滤网 浏览:561
布鲁艾尔净化器换滤网后怎么重置 浏览:337
深圳市宝安区空气净化器多少钱 浏览:717
小电容滤芯高频是什么原因 浏览:37