解题思路:
1.由题意得,最后输出的是十本书的总价,精确到小数点后一位,那么可以想到用一个累加器可以计算总价,并且要定义为double类型,即 double sum=0;必须初始化
2.每本书的单价是已知的,并且有十个数据,所以我们可以在main函数外定义一个double类型的数组,用来存放这十个数据,数组初始化数据的方式有3种:
第一种直接在main函数外,全部为0;
第二种,如果要求数组内是相同的数,则可以循环初始化;
第三种可以利用集合的方式规定,很明显符合第三种初始化的方式,对应的语句为double a[15]={28.9,32.7,……};注意这种方式是从数组的下标0开始存入数据的,即a[0]=28.9,如果想要从编号1的位置存,则第一个元素值写成0即可,后续访问的时候不必访问0的位置,直接访问1的位置
3.接下来输入的一行为十本书的单价,则我们再开一个int类型的b数组用来存放数据,可以从下标0的位置存储
4.最后计算总价,创建一个循环,i从0到9,将a数组对应的单价乘b数组对应的数量,然后便得到这本书的总价,累加到累加器中 sum=sum+a[i]*b[i];
源代码:
#include<bits/stdc++.h>
using namespace std;
double a[15]={0,28.9,32.7,45.6,78,35,86.2,27.8, 43 ,56,65,};
int main()
{
int n;
double sum=0;
for(int i=1;i<=10;i++)
{
cin>>n;
sum=n*a[i]+sum;
}
printf("%.1lf",sum);
return 0;
}