數(shù)據(jù)結(jié)構(gòu)之矩陣行列和相等的實(shí)例
以下為展示“矩陣行列和相等”的簡(jiǎn)單示例:
1.用c語(yǔ)言實(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) //如果里面沒(méi)數(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++語(yǔ)言實(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) //如果里面沒(méi)數(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é)果如下圖所示:

如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
C++中內(nèi)存池和內(nèi)存分配區(qū)Arena概念詳解
在 C++ 中,內(nèi)存分配區(qū)(Arena)通常指的是預(yù)先分配的一大塊連續(xù)內(nèi)存空間,這種方法的主要目的是提高內(nèi)存分配和釋放的效率,下面就跟隨小編一起了解一下C++中內(nèi)存池和內(nèi)存分配區(qū)Arena相關(guān)概念吧2023-12-12
Qt MQTT開(kāi)發(fā)環(huán)境搭建的實(shí)現(xiàn)示例
本文主要介紹了Qt MQTT開(kāi)發(fā)環(huán)境搭建的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
Qt之簡(jiǎn)單的異步操作實(shí)現(xiàn)方法
這篇文章主要介紹了Qt之簡(jiǎn)單的異步操作實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
詳解C++設(shè)計(jì)模式編程中對(duì)訪問(wèn)者模式的運(yùn)用
這篇文章主要介紹了C++設(shè)計(jì)模式編程中對(duì)訪問(wèn)者模式的運(yùn)用,訪問(wèn)者模式在不破壞類的前提下為類提供增加新的新操作,需要的朋友可以參考下2016-03-03
Qt自繪實(shí)現(xiàn)蘋(píng)果按鈕滑動(dòng)效果的示例代碼
這篇文章主要介紹了Qt自繪實(shí)現(xiàn)蘋(píng)果按鈕滑動(dòng)效果的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
利用C++實(shí)現(xiàn)最長(zhǎng)公共子序列與最長(zhǎng)公共子串
這篇文章主要給大家介紹了如何利用C++實(shí)現(xiàn)最長(zhǎng)公共子序列與最長(zhǎng)公共子串,文章一開(kāi)始就給大家簡(jiǎn)單的介紹了什么是子序列,子串應(yīng)該比較好理解就不用多介紹了,人后通過(guò)算法及示例代碼詳細(xì)介紹了C++實(shí)現(xiàn)的方法,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-12-12
使用C++實(shí)現(xiàn)監(jiān)控文件是否被修改
軟件開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)用到配置文件,某些應(yīng)用場(chǎng)景要求在軟件運(yùn)行時(shí)動(dòng)態(tài)修改配置文件,此時(shí)就需要監(jiān)控配置文件是否被修改,下面我們就來(lái)看看如何使用C++實(shí)現(xiàn)這一功能吧2024-02-02

