程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 矩陣-求解 用 C++ 解 怎麼解啊

矩陣-求解 用 C++ 解 怎麼解啊

編輯:編程綜合問答
求解 用 C++ 解 怎麼解啊

二、編程題(需給出源代碼和程序運行截圖)
1. 設計程序實現n*n魔方矩陣(n為奇數)的輸出。
n*n魔方矩陣就是指每一行、每一列以及兩個對角線上的n個自然數的和都相等的方陣。如3*3魔方矩陣為:
8 1 6
3 5 7
4 9 2
矩陣內填寫的數值為1~n*n的自然數。使用已學過的數組相關知識編寫程序實現任意n*n魔方矩陣(n為奇數)的構造並顯示出最終矩陣的結果。
輸入輸出要求:
(1) n的值由用戶指定
(2) 輸出時按照矩陣的形式輸出結果。
 輸入輸出示例
Please input an odd positive integer:3
Find 3*3 magic matrix
――――――――
8 1 6
3 5 7
4 9 2
――――――――

  1. 設計Set(集合)類,Set可以包含零個或多個無序的非重復元素,元素都是int型。公共接口除包含構造函數、拷貝構造函數、析構函數外,還包含以下成員函數:創建一個Set,增加一個新元素到Set,從Set中刪除一個元素,顯示Set中元素,計算Set中元素個數等 。為Set類重載+(並集)、-(差集)、*(交集)。完成後,編寫相應程序測試你的設計

最佳回答:


#include
#include
#include

#define MAXSIZE 99

using namespace std;

int main()
{
int n = 0, m = 1;
cout<<"\nPlease input an odd positive integer:";
cin>>n;

int zero[MAXSIZE*99] = {0};

vector<int> data(zero, zero + n * n * sizeof(int));

int i = 0, j = ( n - 1 ) / 2;
    data[j] = 1;
while( m < n * n )
{
    i = i  + n - 1;
    j = j  + n + 1;

    if (data[ ( i % n ) * n + ( j % n ) ] == 0 )
    {
        m++;
        data[ ( i % n ) * n + ( j % n ) ] = m;

    }else{
        i = i + 3;
        j = j - 2;
    }
}

cout<<endl<<"Find "<<n<<" * "<<n<<" magic matrix"<<endl;
for (i = 0; i < n ; i++)
{
    cout<<"_____";
}
    cout<<endl<<endl;
for( i = 0; i < n; i++)
{
    for ( j = 0; j < n; j++)
    {
        printf("%4d ",data[ n * i + j]);
    }
    cout<<endl<<endl;
}

for (i = 0; i < n ; i++)
{
    cout<<"_____";
}
cout<<endl<<endl;

}

圖片說明
圖片說明

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved