这道题目的输入和结束有点新,没见过几次,改了比较久,有点小漏洞,但是还是过了。
描述
给定若干行,每行若干个整数,请根据每行整数个数从小到大进行排序。
输入
输入数据有若干行,处理到文件结尾(EOF结束)。每行若干个整数,整数之间由空格分隔,结尾没有空格。
输出
输出排序后的若干行(与输入行数相同),每行的格式与输入数据一致。
样例输入
1 2 3
1
1 2
1
1 2
样例输出
1
1 2
1 2 3
1 2
1 2 3
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
#define Maxsize 5000
struct fun
{
char a[1000];
int j;
}t[Maxsize];
int main()
{
int n=0, q[Maxsize], j=0, i;
while(gets(t[n].a))
{
int len=strlen(t[n].a);
t[n].j=len;//直接按长度排序了,没保存整数个数了,但是还是过了。
q[j++]=t[n].j;
n++;
}
int p;
sort(q,q+j);
q[n] = -1;
for(i=0; i<n; i++)
{
if(q[i]!=q[i+1])//避免重复
{
for(p=0; p<n; p++)
{
if(t[p].j==q[i])
cout<<t[p].a<<endl;
}
}
}
return 0;
}