计算所有数字的和(中等)

小王学姐酷爱淘宝,所以购物车经常会有一大堆东西,由于感觉一个个的计算非常麻烦,所以她会把所有的物品信息还有价格复制下来,做成一个文本,然后写一个程序来统计文本里所有物品的价格总值,聪明的学弟学妹你们知道小王学姐的最终需要花费多少钱呢?


首先输入一个整数T,下面有T组数据
每组数据输入一行字符串(不包含空白符,最多不超过10000字符)


输出字符串内所有数字之和

输入
背包一个50扫把三个60.1苹果手机外壳一个28.2羽绒服一件888


输出
1026.3



题目解析
把文本中所有的数字都找出来并且累加,不过需要注意小数的处理,略麻烦,不过可以用sscanf简化问题
/////////////////////////////////////////////////////////////////////////

 #include<stdio.h>

#include<string.h>
#include<stdlib.h>
#define maxn 10005
#define INF 100000
int Find(char s[])//查找s数组的数字到第几位
{
    int i;
    for(i=0; s[i]; i++)
    {
        if( !(s[i] == '.' || s[i]>='0'&&s[i]<='9') )
            break;
    }
    return i;
}
int main()
{
    int i, T;
//    freopen("1.in", "r", stdin);
//    freopen("1.out", "w", stdout);
    scanf("%d", &T);
    while(T--)
    {
        char s[maxn]= {0};
        double sum=0, x;
        
        scanf("%s", s);
        
        for(i=0; s[i]; i++)
        {
            if(s[i] >= '0' && s[i] <= '9')
            {
                int k=Find(s+i);
                s[k+i] = 0;///////为了方便使用sscanf
                sscanf(s+i, "%lf", &x);
                sum += x;
                i += k;
            }
        }
        printf("%.2f\n", sum);
    }
    return 0;
}
posted @ 2015-07-25 17:03  无忧望月  阅读(297)  评论(0编辑  收藏  举报
levels of contents