zoukankan      html  css  js  c++  java
  • 计算所有数字的和(中等)

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


    首先输入一个整数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 ", sum);
        }
        return 0;
    }
  • 相关阅读:
    字符串替换
    字符串查找
    字符串比较
    字节与字符串相互转换
    1365. How Many Numbers Are Smaller Than the Current Number
    1486. XOR Operation in an Array
    1431. Kids With the Greatest Number of Candies
    1470. Shuffle the Array
    1480. Running Sum of 1d Array
    【STM32H7教程】第56章 STM32H7的DMA2D应用之刷色块,位图和Alpha混合
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4676210.html
Copyright © 2011-2022 走看看