數(shù)據(jù)結(jié)構(gòu)之矩陣行列和相等的實(shí)例
更新時(shí)間:2017年10月11日 08:35:25 作者:愛思考的小鳥
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之矩陣行列和相等的實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,讓大家掌握這部分內(nèi)容,需要的朋友可以參考下
以下為展示“矩陣行列和相等”的簡單示例:
1.用c語言實(shí)現(xiàn)的版本
#include <stdio.h>
#include <math.h>
void main()
{
int a[16][16],i,j,n,k;
printf("Please input n(1~15,it must be odd.): ");
scanf("%d",&n);
while(!(n>=1&&n<=15) || n%2==0)
{
printf("The number is invalid.Please insert again:");
scanf("%d",&n);
}
//初始化數(shù)組
for(i=0; i<=n; ++i)
{
for(j=0; j<=n; ++j)
{
a[i][j]=0;
}
}
j = n/2 + 1;
a[1][j] = 1;
i = 1;
for(k=2; k<=n*n; ++k)
{
i = i - 1;
j = j + 1;
if(i==0 && j==n+1) //行列都越界
{
i = i+2;
j = j-1;
}
else
{
if(i==0) //行越界
{
i = n;
}
if(j==n+1) //列越界
{
j = 1;
}
}
if(a[i][j]==0) //如果里面沒數(shù)字
{
a[i][j] = k;
}
else //得到新的數(shù)值
{
i = i + 2;
j = j - 1;
a[i][j] = k;
}
}
for(i=1; i<=n; ++i)
{
for(j=1; j<=n; ++j)
{
printf("%3d", a[i][j]);
}
printf("\n");
}
}
2.用C++語言實(shí)現(xiàn)的版本
#include <iostream>
#include <math.h>
void main()
{
int a[16][16],i,j,n,k;
std::cout<<"Please input n(1~15,it must be odd.): ";
std::cin>>n;
while(!(n>=1&&n<=15) || n%2==0)
{
std::cout<<"The number is invalid.Please insert again:";
std::cin>>n;
}
初始化數(shù)組
for(i=0; i<=n; ++i)
{
for(j=0; j<=n; ++j)
{
a[i][j]=0;
}
}
i = 0;
j = n/2;
a[i][j] = 1;
for(k=2; k<=n*n; ++k)
{
i = i - 1;
j = j + 1;
if(i<=-1 && j>=n) //行列都越界
{
i = 1;
j = n - 1;
}
else
{
if( i<=-1 ) //行越界
{
i = n - 1;
}
if(j>=n) //列越界
{
j = 0;
}
}
if(a[i][j]==0) //如果里面沒數(shù)字
{
a[i][j] = k;
}
else //得到新的數(shù)值
{
i = i + 2;
j = j - 1;
a[i][j] = k;
}
}
for(i=0; i<=n-1; ++i)
{
for(j=0; j<=n-1; ++j)
{
printf("%3d", a[i][j]);
}
printf("\n");
}
}
運(yùn)行結(jié)果如下圖所示:

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
C++實(shí)現(xiàn)學(xué)生住宿管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)生住宿管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
C++實(shí)現(xiàn)浮點(diǎn)數(shù)精確加法
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)浮點(diǎn)數(shù)精確加法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05

