首页 > 代码库 > 挑剔的小杜

挑剔的小杜

挑剔的小杜

时间限制: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]='\0';
		ch[k]='\0';
		qsort(num,count1,sizeof(num[0]),com);
		if(count2!=0)
		{
			printf("%d ",count2);
			for(int j=count2-1;j>=0;j--)
			{
				printf("%c",ch[j]);
			}
			printf("\n");
		}
		else
		{
			printf("0\n");
		}
		if(count1!=0)
		{
			printf("%d ",count1);
			for(int j=count1-1;j>=0;j--)
			{
				printf("%d",num[j]);
			}
			printf("\n"); 
		}
		else
		{
			printf("0\n");
		}
	}	
	return 0;
} 

代码2:

#include<stdio.h>
int num[1003];
char str[1003];
int main()
{
	int n=0,k=0,t=0,i,j,a,b=1;
	char ch;
	scanf("%d",&n);
	getchar();
	while(n--)
	{
		for(i=0;i<=1003;i++)
			num[i]=0;
		j=0;
		i=0;
		while((ch=getchar())!='\n')
		{
			if(ch>='0'&&ch<='9')
			{
				num[i++]=ch-'0';
			}
			if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
			{
				str[j++]=ch;
			}
		}
		str[j]='\0';   
		for(k=1;k<i;k++)
		{
			for(a=0;a<i-k;a++)
			{
				if(num[a]<num[a+1])
				{
					t=num[a];
					num[a]=num[a+1];
					num[a+1]=t;
				}
			}
		}
		printf("%d ",j);
		for(k=j-1;k>=0;k--)
			printf("%c",str[k]);
		printf("\n%d ",i);
		for(k=0;k<i;k++)
			printf("%d",num[k]);
		printf("\n");
	}
}


挑剔的小杜