導航:首頁 > 廢水知識 > 用演算法設計回形矩陣

用演算法設計回形矩陣

發布時間: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的回形矩陣

列印機的程序出現漏洞,你買的是那個牌子的,可以上官網查找解決辦法!

閱讀全文

與用演算法設計回形矩陣相關的資料

熱點內容
污水立管系統圖的左右怎麼分 瀏覽:726
廢水mlss是什麼項目 瀏覽:27
醫院污水培訓考試題 瀏覽:116
樹脂工藝品哪有批發 瀏覽:834
湖州有實力超濾膜電話 瀏覽:605
凈水器用水過濾器多少錢 瀏覽:941
魚缸怎麼過濾 瀏覽:673
凈水機有廢水不出純水 瀏覽:30
商品房怎麼區分雨水管和污水管 瀏覽:504
殺豬場的污水怎麼處理 瀏覽:991
飼料廢水 瀏覽:420
一旦凈水器多少錢 瀏覽:148
污水提升泵內置泵與外置泵 瀏覽:485
硫酸鈉氯化鈉含鹽廢水 瀏覽:45
做化糞池沒有排污水地方怎麼處理 瀏覽:9
冷輥水處理 瀏覽:247
利用秸稈過濾糞污 瀏覽:364
80噸污水用多少水 瀏覽:313
野外污水變清水方法 瀏覽:672
醫院污水監測試紙 瀏覽:387