标题
元素放置
描述
定义一个一维整形数组num[50],输入正整数m、n(2≤m≤n≤7),输入一个m* n整形矩阵(值小于100),编写函数place()完成矩阵元素S型放置,从小到大排列,主函数完成数组输入和输出。
时间限制
1
内存限制
10000
类别
1
输入说明
输入正整数m和n(2≤m≤n≤7),输入一个m * n整形矩阵,含m * n个元素(值小于100)。
输出说明
格式输出:按行输出处理后的矩阵,S型排列, % 3d,每行换行,最后一行不换行。
输入样例
3 3
15 14 21
34 22 37
40 16 50
输出样例
16 15 14
21 22 34
50 40 37
提示
S型排列,输出格式 % 3d,每行换行,最后一行不换行。
#includevoid place(int m, int n, int* num); int main() { int num[50]={0}; int m, n; scanf_s("%d %d", &m, &n); //gets_s(num);//gets是‘字符’串输入 for (int i = 0; i < m * n; i++) scanf_s("%d", &num[i]); place(m, n, num); for (int i = 0; i < m * n - n; i++) { printf("%3d", num[i]); int t = (i + 1) % n;//每n个数换行,这个判断方法很巧妙!忘了这是借鉴谁的了,嘿嘿 if (t == 0) printf("n"); } for (int i = m * n - n; i < m * n; i++) printf("%3d", num[i]);//最后一行不换行 return 0; } void place(int m, int n, int* num) { int change; for (int i = 0; i < m * n-1; i++) { for(int j=i;j num[j]) { change = num[i]; num[i] = num[j]; num[j] = change; } }//所有数从小到大排序 //for (int i = 0; i < m * n; i++) // printf("检验排序%3d", num[i]); int t; int i, j=0; for (t = 0; j < m * n; t=t+2) { for (i =t*n,j=(t+1)*n-1 ; i



