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;
    }
  • 相关阅读:
    [Swift系列]002-基础语法
    [Swift系列]001-入门准备
    navicat连接服务器Mysql 忘记密码 ------- 查看密码
    Elasticsearch 7.10.1 尝鲜笔记
    java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy 排查解决
    nginx TCP 代理& windows傻瓜式安装
    python项目出现的问题 Microsoft Visual C++ 14.0 is required解决方法
    前端使用crypto.js进行加密
    xcopy 高级使用
    高并发解决方案-概念知识
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4676210.html
Copyright © 2011-2022 走看看