挑剔的小杜
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描写叙述
小杜一直都不喜欢数学,可是他特爱语文,所以对英语也很感兴趣。所以他也就有个习惯,一看到字母里面插有数字,一定要把他所有划去。
如今给你纸,纸上有非常多既含有字母,又含有数字的句子(还包含一些标点符号)。你须要将数字找出来放在一边,并组成一个最大的数。然后逆序输出全部字母。和那个最大的数。
输入
第一行:N表示有多少组数据。
接下来的N行。每行有一句话。长度不超过1000。
输出
每句话相应输出两行。
第一行输出字母的总个数及其全部的字母(按原来输入的相反的顺序输出),中间须要一个空格分开。
第二行输出那个数字的总个数及最大的数,中间须要一个空格分开。
(假设没有字母或数字,则相应仅仅须要输出一个0)
例子输入
2
abcabc123abc.
aaa
例子输出
9 cbacbacba
3 321
3 aaa
0
代码1:
#include<stdio.h> #include<string.h> #include<stdlib.h> int com(const void *a,const void *b) { return *(int *)a-*(int *)b; } int main(void) { int n; scanf("%d",&n); while(n--) { char str[1000],ch[1000]; int num[1000]; int count1=0,count2=0; scanf("%s",str); int j=0,k=0; for(int i=0;i<strlen(str);i++) { if(str[i]>='0'&&str[i]<='9') { num[j++]=str[i]-'0'; count1++; } if(str[i]>='a'&&str[i]<='z') { ch[k++]=str[i]; count2++; } } num[j]='