本文主要是介绍小泉的难题-输入多组数据,按升序排序依次输出各组数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
小泉的难题
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条件进行控制。
下为程序运行结果图:
这篇关于小泉的难题-输入多组数据,按升序排序依次输出各组数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!