算菜价

Posted liufei-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算菜价相关的知识,希望对你有一定的参考价值。

题目描述






妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐。现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵。


输入








输入的第一行是一个正整数T,表示有T组测试数据

 

每组数据包括一个正整数N,表示买了N种菜,然后是N行,每行包括一种菜的数量(计量单位不论,一律为double型数)和单价(double型数,表示人民币元数),因此,每组数据的菜价就是数量乘上单价啊。数量和单价之间都有空格隔开的。


输出






支付菜价的时候,由于最小支付单位是角,所以总是在支付的时候采用四舍五入的方法把分头去掉(由于是在不同的摊位上购买,因此是购买一种菜之后就支付一次)。最后,请输出一个精度为角的菜价总量。


样例输入

2
3
1 2
2 1.5
2 4.2
2
1.03 2
1.04 2


样例输出

13.4
4.2


提示



第二组数据:当买第一种菜的时候,价格为2.06,付款为2.1,当买第二种菜的时候,价格为2.08,付款为2.1,所以总价为4.2元。
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<cmath>
int main()
{
    int t,n;
    scanf("%d",&t);
    while(t--)
    {
        double s,ans;
        int m,q;
        s=0;
        ans=0;
        scanf("%d",&n);
        while(n--)
        {
        double a,b;
        scanf("%lf%lf",&a,&b);
        ans=a*b;
        m=ans*100;   //买一次四舍五入一次;由分进位到角,所以乘100在对10取余,对这一位(也就是分)来四舍五入
        q=m%10;
        if(q>=5)     //五入
            m=(m/10+1)*10;
        else         //四舍
            m=m/10*10;
        ans=m/100.0;    
        s=ans+s;   //用s统计总价格
        }
        printf("%.1lf
",s);
 
    }
    return 0;
}

核心(划掉,坑点):因为是在不同摊位上买的,所以买一次菜就要四舍五入一次,最后这些四舍五入的价钱加起来放在s里;在四舍五入的时候也要注意!

以上是关于算菜价的主要内容,如果未能解决你的问题,请参考以下文章

HDU2090 算菜价水题

算菜价

zzuli oj 1135 算菜价

ZZNUOJ_C语言1135:算菜价(附完整源码)

HDU 2029 算菜价

杭电刷题