标题
元素放置
描述
定义一个一维整形数组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,每行换行,最后一行不换行。
#include<stdio.h>
int main()
{
int m,n;
int ar[100][100];
scanf("%d %d",&m,&n);
int x,y;
for(x=0;x<m;x++)
{
for(y=0;y<n;y++)
scanf("%d",&ar[x][y]);
}
int br[100];
for(x=0;x<m;x++)
{
for(y=0;y<n;y++)
br[x*n+y]=ar[x][y];
}
int p,q,change;
int sum=m*n;
for(p=0;p<sum;p++)
{
for(q=1;q<sum-p;q++)
{
if(br[q-1]>br[q])
{
change=br[q-1];
br[q-1]=br[q];
br[q]=change;
}
}
}
for(x=0;x<m;x++)
{
for(y=0;y<n;y++)
ar[x][y]=br[x*n+y];
}
int cr[100][100];
for(x=0;x<m;x++)
{
for(y=0;y<n;y++)
{
if(x%2!=0)
cr[x][y]=ar[x][y];
else
cr[x][y]=ar[x][n-y-1];
}
}
for(x=0;x<m;x++)
{
for(y=0;y<n;y++)
{
printf("%d ",cr[x][y]);
}
printf("\n");
}
return 0;
}