使用函数完成以下功能,并得到一个完整的可以运行的程序:
1)定义两个数组,用来表示下列关系表:
水位 库容
112 5656
115 5954
113 5703
110 5500
111 5642
114 5841
2)将两个数组分别按从小到大排序
3)输入任意一个水位,计算对应库容
4)输入任意库容,计算水位
(注:使用插值法计算,比如水位输入112.6,首先查询到112和113米水位
对应的库容5656和5703,然后计算比例=112.6-112=0.6,最后结果就是0.6 * (5703-5656) + 5656)
我只做到第三问,第四问没写计算方式,所以没写(懒得写)
#include <iostream>
#include<algorithm>
using namespace std;
int main()
{
double water_leave[6] = { 112,115,113,110,111,114 };
double capacity[6] = { 5656,5954,5703,5500,5642,5841 };
//第二问 排序
sort(water_leave, water_leave + 6);
sort(capacity, capacity + 6);
//第三问
double d_wl;
while (true)
{
cout << "please input 110~115 number:";
cin >> d_wl;
if (d_wl > 115 || d_wl < 110)
{
continue;
}
else
{
break;
}
}
for (int i = 0; i < 6; ++i)
{
if (water_leave[i] >= d_wl)
{
double capaty1 = capacity[i];
double capaty2=0;
double leave = d_wl- water_leave[i-1];
if (i - 1 >= 0)
{
capaty2 = capacity[i - 1];
}
double capty3 = leave * (capaty1 - capaty2) + capaty2;
cout << "capacity = " << capty3 << endl;
break;
}
}
}
效果: