2675:计算书费
总时间限制: 1000ms 内存限制: 65536kB
描述
下面是一个图书的单价表:
计算概论 28.9 元/本
数据结构与算法 32.7 元/本
数字逻辑 45.6元/本
C++程序设计教程 78 元/本
人工智能 35 元/本
计算机体系结构 86.2 元/本
编译原理 27.8元/本
操作系统 43 元/本
计算机网络 56 元/本
JAVA程序设计 65 元/本
给定每种图书购买的数量,编程计算应付的总费用。
输入
输入第一行包含一个正整数k(0<k<100),表示有k组测试数据;接下来k行,每行包含一组测试数据。每组测试数据包含10个整数(大于等于0,小于等于100),分别表示购买的《计算概论》、《数据结构与算法》、《数字逻辑》、《C++程序设计教程》、《人工智能》、《计算机体系结构》、《编译原理》、《操作系统》、《计算机网络》、《JAVA程序设计》的数量(以本为单位)。每两个整数用一个空格分开。
输出
对于每组测试数据,输出一行。该行包含一个浮点数f,表示应付的总费用。精确到小数点后两位。
可用printf("%.2f\n", sum)来输出sum的值,并精确到小数点后两位。
样例输入
2
1 5 8 10 5 1 1 2 3 4
3 5 6 3 100 1 1 0 1 0
样例输出
2140.20
4427.80
来源
计算概论05-模拟考试1
问题链接:Bailian2675 计算书费
问题简述:(略)
问题分析:简单的金额求和,不解释。需要注意输入输出和计算类型,一般而言,在OJ上做题,输入和计算类型用double,输出时按float格式输出,这也许是因为测试数据是按照这样来做的。
程序说明:程序中使用常量N,是出于程序通用性的考虑。另外,求和时,求和变量的初值需要置为0。
参考链接:(略)
题记:(略)
AC的C++语言程序如下:
/* Bailian2675 计算书费 */
#include <bits/stdc++.h>
using namespace std;
double cost[] = { 28.9, 32.7, 45.6, 78,35, 86.2, 27.8, 43, 56,65 };
const int N = sizeof(cost) / sizeof(double);
int main()
{
int k;
scanf("%d", &k);
while(k--) {
int num;
double sum = 0;
for(int i = 0; i < N; i++)
scanf("%d", &num), sum += num * cost[i];
printf("%.2f\n", sum);
}
return 0;
}