第一行:23 2 6 15 19
第二行:11 20 24 3 7
第三行: 4 8 12 16 25
第四行:17 21 5 9 13
第五行:10 14 18 22 1
是这样吗我足足排了二个小时,总算排出来了,不为什么,图个高兴啊
你说对吗,我七十三岁了,不搓麻将不抽烟,动动脑筋也是一种乐趣。祝你快乐。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <stdioh>
#include <stdlibh>
#include <timeh>
const int M = 10;
const int N = 10;
void sortColumnDecrease(int a[][N],int m,int n) {
int i,j,k,s,t;
for(i = 0; i < n; ++i) {
for(j = 0; j < m - 1; ++j) {
s = j;
for(k = j + 1; k < m; ++k) {
if(a[s][i] < a[k][i])
s = k;
}
if(s != j) {
t = a[s][i];
a[s][i] = a[j][i];
a[j][i] = t;
}
}
}
}
int max(int a[],int n) {
int i,maxn = a[0];
for(i = 1; i < n; ++i)
if(maxn < a[i]) maxn = a[i];
return maxn;
}
int min(int a[],int n) {
int i,minn = a[0];
for(i = 1; i < n; ++i)
if(minn > a[i]) minn = a[i];
return minn;
}
void show(int a[][M],int m,int n) {
int i,j;
for(i = 0; i < m; ++i) {
for(j = 0; j < n; ++j)
printf("%4d",a[i][j]);
printf("\n");
}
printf("\n");
}
int main(void) {
int i,j,a[M][N];
srand((unsigned)time(NULL));
for(i = 0; i < M; ++i)
for(j = 0; j < N; ++j)
a[i][j] = rand()%100;
printf("排序前:\n");
show(a,M,N);
for(i = 0; i < M; ++i)
printf("第%2d行的最大值为:%2d,最小值为:%2d\n",
i + 1,max(a[i],N),min(a[i],N));
printf("排序后:\n");
sortColumnDecrease(a,M,N);
show(a,M,N);
for(i = 0; i < M; ++i)
printf("第%2d行的最大值为:%2d,最小值为:%2d\n",
i + 1,max(a[i],N),min(a[i],N));
return 0;
}
具体设置步骤如下:
1、打开MATLAB软件,可以使用ortrows函数,在命令行窗口内打入help sortrows,就会出现以下画面,就如下图所示,根据出现的提示进行下一步进程。
2、有了函数之后,这时需要创建一个矩阵,矩阵a为3行3列,可以输入“sortrows(a,1)”,就会看到以下画面,如下图所示,这个函数是对整个矩阵按第一列进行升序排序。
3、输入完之后,既可以在命令行窗口中点击回车按钮,这时就会看到以下画面,如下图所示,这就是排序的效果。
4、接着在下方输入“sortrows(a,2)”,这个意思就是对第二列进行排序,就会看到以下画面,如下图所示,就按第二列对矩阵进行排序,可以看到行跟着变动。
以上就是关于矩阵如何排列全部的内容,包括:矩阵如何排列、编写一程序,把M×N矩阵a的元素逐列按降序排列。、matlab 中,怎么让一个矩阵按某一列排列,并且行也跟着变动等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)