百练_2888字符串中的数字

(POJ 2888:字符串中的数字)


问题:输入一个字符串,长度不超过20,字符串中包含数字和非数字字符,将其中是数字的字符提取出来,对它们进行从小到大排序,非数字字符则忽略不计。


输入:若干行字符串


输出:每一个字符串中所有数字的升序排序。每个数字占四个字符位置,处理完一行字符串换行一次。


样例输入:


样例输出:


思路:用字符数组讲输入的字符串进行存储,找出数字0~9的字符,用int类型的数组进行存储数字,下面用的是冒泡排序讲数字从小到大排序,使用printf()函数 printf("%4c",a2[i]+'0');输出题目要求的格式(使用cout<< setw(4)<< num)


#include<stdio.h>
int main()
{
	int i,n,l,t,m,a2[25];
	char a[25],a1[25],j[10];
	while(gets(a))                 //用a来存储读入的字符 
	{
		for(i=0;i<10;i++)
		j[i]=0;
		l=0;
		for(i=0;a[i]!='\0';i++)
		{
			if(a[i]>=48&&a[i]<=57)    //只对字符串中数字0~9讨论 
			a1[l++]=a[i];             
		}
		a1[l]='\0';
		
        for(i=0;i<l;i++)
        a2[i]=int(a1[i]-'0');          
        
        
		for(i=0;i<l-1;i++)            //用冒泡排序对字符进行从小到大排序 
        for(m=0;m<l-1-i;m++)
        if(a2[m]>a2[m+1])
        {uowe
        	t=a2[m];
        	a2[m]=a2[m+1];
        	a2[m+1]=t;
        }
        
        for(i=0;i<l;i++)                     //将出现的数字从小到大打印
        printf("%4c",a2[i]+'0');         
        printf("\n");
	}
	return 0;
}

 百练/练习对应链接http://bailian.openjudge.cn/practice/2888/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值