导航:首页 > 废水知识 > 用算法设计回形矩阵

用算法设计回形矩阵

发布时间:2021-11-14 10:32:13

① C语言编写一个回型矩阵

#include<stdio.h>
#define M 10
int data[M][M];
void max()
{
int tem;
int ctat;
int i,j;
i=j=0;
tem=ctat=1;
while(tem<M*M) //tem是1到M*M值变量
{ //把方向分为4中状态 即 ctat 变量 上 下 左 右 (1 2 3 4)
data[i][j]=tem;
switch(ctat)
{
case 1:
{
if(j+1<M&&0==data[i][j+1]) //第一种状态右
{
tem++;
j++;
}
else
ctat=2;
}
break;
case 2:
{
if(i+1<M&&0==data[i+1][j]) //下
{
tem++;
i++;
}
else
ctat=3;
}
break;
case 3:
{
if(j-1>=0&&0==data[i][j-1]) //左
{
tem++;
j--;
}
else
ctat=4;
}
break;
case 4:
{ //上
if(i-1>=0&&0==data[i-1][j])
{
tem++;
i--;
}
else
ctat=1;//又上 状态1 依次 循环 至矩阵最后第2个值M*M-1;//最后第一个值有 本函数最后赋予
}
break;
default:
break;
}
}
data[i][j]=tem; //赋予最后一个 即 data[i][j]=M*M
}
void main()
{

int i,j;
max();
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
printf("%4d",data[i][j]);
printf("\n");
}
getch();}

② C语言回型矩阵

{
int c,m,n,i,j;
int t=0;
int a[20][20];
scanf("%d%d",&m,&n);
if(m>n)
c=n/2+1;
else
c=m/2+1;
for(i=0;i<c;i++)
{
for(/*j=0*/j=i;j<n-i-1;j++)
{
t++;
a[i][j]=t;
}
for(j=i;j<m-i-1;j++)
{
t++;
a[j][n-i-1]=t;
}
for(j=n-i-1;j>i;j--)
{
t++;
a[m-i-1][j]=t;
}
for(j=m-i-1;j>i;j--)
{
t++;
a[j][i]=t;
}
}

for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
printf("%d ", a[i][j]);
if(((j+1)%n) == 0)
printf("\n");
}
}
line12 我注释掉你的一部分,后边换成修改后的;看你代码的意思是按回环依次复制,那么外侧一环赋值完成后,进入内一层环的时候,i和j都要+1的;你的i+1了,但j没有。

③ C语言程序设计中,怎样输出一个回形数组

#include<stdio.h>

intmain()

{

inta[20][20],n,i,j,l,t,k=1;

scanf("%d",&n);

i=0;j=n-1;

for(l=n-1;l>0;l-=2)

{

for(t=0;t<l;t++)a[i++][j]=k++;

for(t=0;t<l;t++)a[i][j--]=k++;

for(t=0;t<l;t++)a[i--][j]=k++;

for(t=0;t<l;t++)a[i][j++]=k++;

i++;j--;

}

if(n%2)a[n/2][n/2]=k;

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

{

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

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

printf(" ");

}

return0;

}

④ 如何用C语言输出一个n*m回型矩阵

int_tmain(intargc,_TCHAR*argv[])
{
intn=16,m=10;
for(inti=0;i<n;i++)
{
for(intj=0;j<n;j++)
{
if(i==0||i==n-1)
{
printf("#");
}

elseif(0<i<n-1)
{


if(j==0||j==n-1)printf("#");

elseif((n-m)/2==i||i==(n-m)/2+m-1)
{
if(j>=(n-m)/2&&j<=(n-m)/2+m-1)
{
printf("#");
}
elseprintf("");
}
elseif((n-m)/2<=i&&i<=(n-m)/2+m-1)
{
if(j==(n-m)/2||j==(n-m)/2+m-1)
{
printf("#");
}
elseprintf("");
}
else
{
printf("");
}
}
}
printf(" ");

}

while(1);
return0;
}

⑤ 一个c语言问题(输出回型矩阵)

效果图 最下面的连接 我另一个网络id 的blog
/* * * * * * * * * * * * * * * * * * * * * * * * * *
编译平台 : Windows XP
程序作者 : veket_linux
编译器 : GCC 3.4.2
* * * * * * * * * * * * * * * * * * * * * * * * * */

/*
螺旋矩阵-撞墙法
设置上下左右四面墙,遇到撞墙,改变移动方向,墙向内收缩
*/
#include<stdio.h>
int main()
{
int a[5][5];
int i;
int j;
int n;
int top;
int botton;
int left;
int right;
int d;

n = 25;
i = 0;
j = 0;
top = 0;
botton = 5;
left = -1;
right = 5;
d = 0;
for(n=1;n<=25;n++)
{
if(d == 0)
{
if(j==right)
{
j--;
right--;
d = 1;
i++;
n--;
continue;
}
else
{
a[i][j] = n;
j++;
}
}

if(d == 1)
{
if(i==botton)
{
i--;
botton--;
d = 2;
j--;
n--;
continue;
}
else
{
a[i][j] = n;
i++;
}
}

if(d == 2)
{
if(j==left)
{
j++;
left++;
d = 3;
i--;
n--;
continue;
}
else
{
a[i][j] = n;
j--;
}
}

if(d == 3)
{
if(i==top)
{
i++;
top++;
d = 0;
j++;
n--;
continue;
}
else
{
a[i][j] = n;
i--;
}
}
}

printf("the array is:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
return 0;
}

⑥ 使用Java设计一个正方形矩阵类,实现输出迂回矩阵。 具体样例看下图。

packagecom.test;
importjava.util.Scanner;

classSquare{
privateintn;
privateintmData[][]=newint[20][20];

Square(intn){
this.n=n;
initData();
}
privatevoidinitData(){
inti,j;
intinit=1;
for(i=0;i<n;i++)
{
//以半径为i的正方形周边进行赋值
//按照顺时针的方向
for(j=0;j<=i;j++)
mData[n-1-i][j]=init++;
for(j=i-1;j>=0;j--)
mData[n-1-j][i]=init++;
}
}

publicvoidprint(){
inti,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
System.out.print(mData[i][j]);
System.out.print(' ');
}
System.out.println();
}
}

publicstaticvoidmain(String[]args){
intn=1;
Scannersc=newScanner(System.in);
try{
n=sc.nextInt();
}catch(Exceptione){}
Squares=newSquare(n);
s.print();
}

}

你将上面的代码保存为Square.java

放在包com.test中,可以直接运行的

⑦ C语言中的回形矩阵,怎么办

#include <iostream>
using namespace std;
void rectangle(int n, int m, char c, int flag){
for(int i=1; i<=n; i++) {
for(int j=1; j<=m; j++) {
if(i == 1 || i == n || j == 1 || j == m)
cout << c;
else {
if(flag)
cout << c;
else
cout << " ";
}
}
cout << endl;
}}
int main(){
int n, m, flag;
char c;

cin >> n >> m >> c >> flag;

rectangle(n, m, c, flag);

return 0;}

⑧ 用C++中面向对象的程序设计方法实现矩阵的常用算法

#include<iostream>
usingnamespacestd;

classMatrix{
private:
introw;
intcol;
int**p;
public:
//矩阵的行列
Matrix(int*pm,intr,intc){
row=r;
col=c;
//创建二维数组
p=newint*[row];
for(inti=0;i!=row;++i){
p[i]=newint[col];
}
//矩阵元素赋值
if(pm!=NULL)
for(inti=0;i!=row;i++){
for(intj=0;j!=col;++j){
p[i][j]=pm[i*col+j];
}
}

}
//矩阵加法,结果存放在调用该函数的矩阵
voidadd_mm(Matrix&M){
for(inti=0;i<row;++i){
for(intj=0;j<col;++j){
this->p[i][j]+=M.p[i][j];
}
}
}
//矩阵减法,结果存放在调用该函数的矩阵
voidsub_mm(Matrix&M){
for(inti=0;i<row;++i){
for(intj=0;j<col;++j){
this->p[i][j]-=M.p[i][j];
}
}
}
//数与矩阵的乘法,结果存放在调用该函数的矩阵
voidmulti_num(intnum){
for(inti=0;i<row;++i){
for(intj=0;j<col;++j){
p[i][j]*=num;
}
}
}
//矩阵与矩阵的乘法,结果存放在新产生的矩阵中
Matrixmulti_mm(Matrix&M){
if(col!=M.row)//若不满足矩阵相乘的条件,返回一个0行0列的矩阵。
returnMatrix(NULL,0,0);

MatrixnewM(NULL,row,M.col);
//初始化新矩阵
for(size_ti=0;i!=newM.row;++i){
for(size_tj=0;j!=newM.col;++j){
newM.p[i][j]=0;
}
}
for(inti=0;i!=row;++i){
for(intj=0;j!=M.col;++j){
for(intk=0;k!=col;++k){
newM.p[i][j]+=this->p[i][k]*M.p[k][j];
}
}
}

returnnewM;
}
//矩阵的转置,返回一个新的转置矩阵
Matrixtranspose(){
MatrixnewM(NULL,col,row);

for(inti=0;i<row;++i){
for(intj=0;j<col;++j){
newM.p[j][i]=p[i][j];
}
}
returnnewM;
}
voidmyDisplay(){
for(inti=0;i!=row;++i){
for(intj=0;j!=col;++j){
cout<<p[i][j]<<"";
}
cout<<endl;
}
}

};

intmain(){
intarr1[][3]={
{1,1,1},
{2,2,2}
};
intarr2[][3]={
{10,10,10},
{20,20,20}
};
cout<<"矩阵1:"<<endl;
Matrixm1(&arr1[0][0],2,3);
m1.myDisplay();
cout<<"矩阵2:"<<endl;
Matrixm2(&arr2[0][0],2,3);
m2.myDisplay();

cout<<"矩阵1加矩阵2:"<<endl;
m1.add_mm(m2);
m1.myDisplay();
cout<<"矩阵1减矩阵2:"<<endl;
m1.sub_mm(m2);
m1.myDisplay();
intnum=100;
cout<<"矩阵1与数"<<num<<"的乘法:"<<endl;
m1.multi_num(num);
m1.myDisplay();

intarr3[][2]={
{10,10},
{20,20},
{30,30}
};
Matrixm3(&arr3[0][0],3,2);
cout<<"矩阵3:"<<endl;
m3.myDisplay();
cout<<"矩阵1与矩阵3的乘法:"<<endl;
m1.multi_mm(m3).myDisplay();
cout<<"xxxxx"<<endl;//

cout<<"矩阵1的转置:"<<endl;
m1.transpose().myDisplay();


system("pause");//按任意键继续
return0;
}

执行结果:

⑨ C++输出数字回形矩阵

voidmatrix(intn){
chard[2*9][2*9];
if(n>0&&n<=9){
intt=2*n-1;
inti,j;
ints=0,e=t-1;
for(i=0;i<n;i++){
for(j=s;j<=e;j++){
d[i][j]=d[j][i]=
d[j][e]=d[e][j]
=n-i+'0';
}
s++;
e--;
}
for(i=0;i<t;i++){
d[i][t]=0;
printf("%s ",d[i]);
}
}
}
intmain()
{
intn;
scanf("%d",&n);
matrix(n);
return0;
}

⑩ 输入N,打印N*N的回形矩阵

打印机的程序出现漏洞,你买的是那个牌子的,可以上官网查找解决办法!

阅读全文

与用算法设计回形矩阵相关的资料

热点内容
污水排放过滤池 浏览:475
锂电池生产过程中废水产生环节 浏览:167
废水管道桥架 浏览:125
滤水器滤芯堵塞怎么回事 浏览:762
生活污水cad管道图 浏览:961
五大工业废水 浏览:520
欧可尼空气净化器滤芯怎么换 浏览:778
家用空调外机滤芯在什么地方 浏览:408
挂壁空调滤芯如何拆 浏览:471
饮水机插线板坏了怎么办 浏览:460
华净时代净水器多少钱 浏览:853
同轴式提升管反应器 浏览:845
过滤减压阀功能 浏览:390
化水反渗透膜 浏览:359
离子交换器去除氯离子 浏览:970
长安悦翔v3的空气滤芯什么样子 浏览:300
宝马2系单门的空调滤芯在哪里 浏览:295
贺众牌饮水机rr什么意思 浏览:170
净水直饮水机执照范围加什么 浏览:774
在天津哪里可以考污水处理工 浏览:96