小泉的难题
Description
机械实验班有个同学叫小泉,有一天数学老师给小泉布置了一道个人作业,给小泉M(M<=100)组数据,每组数据有N个正整数(N<=100)让他把每组的N个数按升序排成一行,但由于数的数目比较多,人工做很费时,于是小泉就想到了喜欢编程序的你,请你帮他解决这个问题,可不要让他失望噢。
Input
输入包括M+1行,第一行是两个正整数M、N;M表示总共多少组数据,下面M行每行包含N个正整数。(输入数据之间会用空格隔开)
Output
输出包括M行,每行分别对应输入中M组数据的升序序列,数与数之间用一个空格隔开。
Sample
Input
2 3
1 3 2
4 2 6
Output
1 2 3
2 4 6
下为代码(已AC)
#include <stdio.h>
int main()
{
int j,k,m,n;
int a[101][101];
scanf("%d%d",&j,&k);
for(m=0;m<=j-1;m++)
{
for(n=0;n<=k-1;n++)
{
scanf("%d",&a[m][n]);
}
}
for(m=0;m<=j-1;m++)
{
for(n=0;n<=k-2;n++)
for(int i=0;i<=k-2-n;i++)
{
if(a[m][i]>a[m][i+1])
{
int t;
t=a[m][i];
a[m][i]=a[m][i+1];
a[m][i+1]=t;
}
}
}
for(m=0;m<=j-1;m++)
{
for(int i=0;i<=k-1;i++)
{
printf("%d",a[m][i]);
if(i<=k-2) printf(" ");
}
if(m<=j-2) printf("\n");
}
}
作者的方法是用一个二维数组接受每组数据,后用冒泡排序将各数组进行升序排序,然后输出。
因为要AC的话,需要控制在输出每组数据后无空格,且最后一组数据无换行符,所以加了一个if条件进行控制。
下为程序运行结果图: