zoukankan      html  css  js  c++  java
  • 挑剔的小杜

    挑剔的小杜

    时间限制: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]='';
    		ch[k]='';
    		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("
    ");
    		}
    		else
    		{
    			printf("0
    ");
    		}
    		if(count1!=0)
    		{
    			printf("%d ",count1);
    			for(int j=count1-1;j>=0;j--)
    			{
    				printf("%d",num[j]);
    			}
    			printf("
    "); 
    		}
    		else
    		{
    			printf("0
    ");
    		}
    	}	
    	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())!='
    ')
    		{
    			if(ch>='0'&&ch<='9')
    			{
    				num[i++]=ch-'0';
    			}
    			if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
    			{
    				str[j++]=ch;
    			}
    		}
    		str[j]='';   
    		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("
    %d ",i);
    		for(k=0;k<i;k++)
    			printf("%d",num[k]);
    		printf("
    ");
    	}
    }
    


  • 相关阅读:
    C++优化和计算速度(碎碎念)
    架设一个p2p存储网络的问题(讨论)
    JAVA做敏感词统计——DFA 算法
    卸载Postman,用IntelliJ IDEA发起http请求
    LPC1788SDRAM调试
    ASP.NET网站大附件上传配置
    K2 Blackpearl中从数据库直接删除流程实例之K2Server表
    K2流程实例出错,切换到其他版本运行
    使用K2时提示未能加载文件或程序集Microsoft.IdentityModel等
    K2 Blackpearl中从数据库直接删除流程实例之K2ServerLog表
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7126807.html
Copyright © 2011-2022 走看看