• 轻院:2209: 小明找整数


    http://acm.zzuli.edu.cn/problem.php?id=2209点击打开链接

    题目描述

        写一个函数,把一个数字字符串转换成十进制整数。并利用这个函数,把一个字符串中的数字子序列找出来并转换成十进制整数输出。

    输入

        第一行是整数n,表示测试的数据组数,下面是n行无空格的字符串(长度不超过20000)。题目保证字符串中含的整数位数小于999位,不考虑负数情形。(本题不要用gets输入)。

    输出

        每一行输入对应一行输出,一行中若有多个数据,每两个数据间有一个空格。

    样例输入

    1
    00tUrA-Hc:T#7yN`;J0123Y+'-rD%SV`{)e'9;Lt[^$}~0

    样例输出

    0 7 123 9 0

    提示

    输出数据无前导0

    #include<stdio.h>
    #define N 20020
    char str[N];
    int main()
    {
    	int i,num,n,flag,j,ans[1020];
    	while(scanf("%d",&n)!=EOF)
    	{
    		while(n--)
    		{
    			num=0;
    			flag=0;
    			scanf("%s",str);
    			for(i=0;str[i]!='';i++)
    			{
    			
    				if(str[i]>='0'&&str[i]<='9')
    				{
    					ans[num]=str[i]-'0';
    					num++;
    				}
    			    if((str[i]>='0'&&str[i]<='9')&&(str[i+1]==''||(str[i+1]<'0'||str[i+1]>'9')))
    			    {
    			    	if(flag)
    						printf(" ");
    			    	if(num==1)
    			    	{
    			    		printf("%d",ans[0]);
    			    		num=0;
    			    		flag++;
    					}
    			    		
    			    	else {
    			    		for(j=0;j<num-1;j++)
    			    			if(ans[j]!=0)
    			    				break;
    			    		for(;j<num;j++)
    			    			printf("%d",ans[j]);
    			    		num=0;
    			    		flag++;
    					}	
    				}
    			}
    			printf("
    ");
    		}
    	}
    	return 0;
    }

  • 相关阅读:
    BZOJ 3196 二逼平衡树
    BZOJ 4241 历史研究
    Problem 71:Ordered fractions
    矿工安全生产
    Codeforces 771C:Bear and Tree Jumps
    Problem 77:Prime summations
    Problem 69:Totient maximum
    关于Euclid算法
    团体程序设计天梯赛-练习集
    埃蒙的时空航道
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/10003056.html
Copyright © 2020-2023  润新知