如圖,用c語言怎么做這兩個題
uj5u.com熱心網友回復:
[face]monkey2:019.png[/face]uj5u.com熱心網友回復:
題9的解答如下:(題10可以在題9代碼的基礎上完成)
0100000100000000000000000000000000000000000000000
1010000010000000000000000000000000000000000000000
0101000001000000000000000000000000000000000000000
0010100000100000000000000000000000000000000000000
0001010000010000000000000000000000000000000000000
0000101000001000000000000000000000000000000000000
0000010000000100000000000000000000000000000000000
1000000010000010000000000000000000000000000000000
0100000101000001000000000000000000000000000000000
0010000010100000100000000000000000000000000000000
0001000001010000010000000000000000000000000000000
0000100000101000001000000000000000000000000000000
0000010000010100000100000000000000000000000000000
0000001000001000000010000000000000000000000000000
0000000100000001000001000000000000000000000000000
0000000010000010100000100000000000000000000000000
0000000001000001010000010000000000000000000000000
0000000000100000101000001000000000000000000000000
0000000000010000010100000100000000000000000000000
0000000000001000001010000010000000000000000000000
0000000000000100000100000001000000000000000000000
0000000000000010000000100000100000000000000000000
0000000000000001000001010000010000000000000000000
0000000000000000100000101000001000000000000000000
0000000000000000010000010100000100000000000000000
0000000000000000001000001010000010000000000000000
0000000000000000000100000101000001000000000000000
0000000000000000000010000010000000100000000000000
0000000000000000000001000000010000010000000000000
0000000000000000000000100000101000001000000000000
0000000000000000000000010000010100000100000000000
0000000000000000000000001000001010000010000000000
0000000000000000000000000100000101000001000000000
0000000000000000000000000010000010100000100000000
0000000000000000000000000001000001000000010000000
0000000000000000000000000000100000001000001000000
0000000000000000000000000000010000010100000100000
0000000000000000000000000000001000001010000010000
0000000000000000000000000000000100000101000001000
0000000000000000000000000000000010000010100000100
0000000000000000000000000000000001000001010000010
0000000000000000000000000000000000100000100000001
0000000000000000000000000000000000010000000100000
0000000000000000000000000000000000001000001010000
0000000000000000000000000000000000000100000101000
0000000000000000000000000000000000000010000010100
0000000000000000000000000000000000000001000001010
0000000000000000000000000000000000000000100000101
0000000000000000000000000000000000000000010000010
思路:
1.本題是圖的應用,可以通過二維陣列存盤資料(簡單,但存盤效率不如鏈表) a[49][49]
2.分析頂點的特點,從而得出 其是否存在邊
up:(i,j-1)
down:(i,j+1)
left:(i-1,j)
right:(i+1,j) 0<=i<=6 0<=j<=6
3. 列印二維陣列即可
原始碼如下:
#include<iostream>
using namespace std;
#define row 7
#define column 7
#define max 49
#define boundary_min 0
#define boundary_max 6
#define Null -1
int a[max][max];
void CreatGraphic();
int up(int i,int j);
int down(int i,int j);
int left(int i,int j);
int right(int i,int j);
//void PrintMatrix
int main()
{
CreatGraphic();
for(int i=0;i<row;i++)
{
for(int j=0;j<column;j++)
{
if(up(i,j)!=Null)
{
a[(j)*column + i][up(i,j)] = 1;
a[up(i,j)][(j)*column + i] = 1;
}
if(down(i,j)!=Null)
{
a[(j)*column + i][down(i,j)] = 1;
a[down(i,j)][(j)*column + i] = 1;
}
if(left(i,j)!=Null)
{
a[(j)*column + i][left(i,j)] = 1;
a[left(i,j)][(j)*column + i] = 1;
}
if(right(i,j)!=Null)
{
a[(j)*column + i][right(i,j)] = 1;
a[right(i,j)][(j)*column + i] = 1;
}
}
}
for(int k=0;k<max;k++)
{
for(int h=0;h<max;h++)
cout<<a[k][h];
cout<<endl;
}
//cout<<"1"<<endl;
return 0;
}
void CreatGraphic()
{
for(int i=0;i<max;i++)
for(int j=0;j<max;j++)
a[i][j]=0;
}
int up(int i,int j)
{
if ( boundary_min<=(j-1) && (j-1)<=boundary_max )
return ((j-1)*column+i);
else return Null;
}
int down(int i,int j)
{
if( boundary_min<=(j+1) && (j+1)<=boundary_max )
return ((j+1)*column+i);
else return Null;
}
int left(int i,int j)
{
if( boundary_min<=(i-1) && (i-1)<=boundary_max )
return (j*column+(i-1));
else return Null;
}
int right(int i,int j)
{
if( boundary_min<=(i+1) && (i+1)<=boundary_max )
return (j*column+(i+1));
else return Null;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/242601.html
標籤:新手樂園
上一篇:不符合規范,各位大佬動動腦
下一篇:求助
