當前位置:編程學習大全網 - 編程語言 - C++編程:將壹個5X5的矩陣中最大的元素放在中心,4個角分別放4個最小的元素(按從左到右,從上到下順序)

C++編程:將壹個5X5的矩陣中最大的元素放在中心,4個角分別放4個最小的元素(按從左到右,從上到下順序)

/*

input the array :

the sorted array :

0 4 12 20 1

5 6 7 8 9

10 11 24 13 14

15 16 17 18 19

3 21 22 23 2

請按任意鍵繼續. . .

*/

#include <iostream>

using namespace std;

int main() {

void search(int a[][5]);

int a[5][5],i,j;

cout << "input the array :\n";

for(i = 0;i < 5;i++)

for(j = 0;j < 5;j++)

a[i][j] = 5 * i + j;

// cin >> a[i][j];

search(a);

cout << "the sorted array :\n";

for(i = 0;i < 5;i++) {

for(j = 0;j < 5;j++) {

cout.width(3);

cout << a[i][j];

}

cout << endl;

}

cout << endl;

return 0;

}

void search(int p[][5]) {

int i,j,k,t,a[25];

int row[25],col[25]; // 臨時數組變量,用於記錄各個變量在原數組中的索引

for(i = 0; i < 5; ++i) { // 先復制

for(j = 0; j < 5; ++j) {

a[5 * i + j] = p[i][j];

row[5 * i + j] = i;

col[5 * i + j] = j;

}

}

for(i = 0; i < 24; ++i) { // 降排序

k = i;

for(j = i + 1;j < 25; ++j)

if(a[k] < a[j]) k = j;

if(k != i) {

t = a[i];

a[i] = a[k];

a[k] = t;

t = row[k];

row[k] = row[i];

row[i] = t;

t = col[k];

col[k] = col[i];

col[i] = t;

}

}

// 最大的放在左上角

t = p[2][2];

p[2][2] = a[0];

p[row[0]][col[0]] = t;

// 最小的放在左上角

t = p[0][0];

p[0][0] = a[24];

p[row[24]][col[24]] = t;

// 次最小的放在右上角

t = p[0][4];

p[0][4] = a[23];

p[row[23]][col[23]] = t;

// 第三小的放在右下角

t = p[4][4];

p[4][4] = a[22];

p[row[22]][col[22]] = t;

// 第四小的放在左下角

t = p[4][0];

p[4][0] = a[21];

p[row[21]][col[21]] = t;

}

  • 上一篇:宣城旅遊學校專業有哪些?專業介紹
  • 下一篇:力學專業有哪些
  • copyright 2024編程學習大全網