算菜价
题目描述 妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐。现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵。 输入 输入的第一行是一个正整数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\n",s); } return 0; }
核心(划掉,坑点):因为是在不同摊位上买的,所以买一次菜就要四舍五入一次,最后这些四舍五入的价钱加起来放在s里;在四舍五入的时候也要注意!