首页 > 学院 > 开发设计 > 正文

C_算法 (POJ)字符串中的数字

2019-11-06 06:26:03
字体:
来源:转载
供稿:网友

(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/


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表