欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》
问题:1330. 求最大梯形的面积
类型:二维数组
题目描述:
从键盘读入 n ( 3≤n≤100 )个梯形的上底、下底和高,请问这 n 个梯形中,最大面积的梯形的面积是多少?
(梯形面积的求解公式为 S=(a+b)×h/2 ,也就是 (上底+下底)×高/2 )
输入:
第 1 行为 1 个整数 n ,接下来 n 行每行 3 个整数分别代表梯形的上底、下底和高。
输出:
最大面积梯形的面积(结果保留 1 位小数)
样例:
输入:
3
1 2 3
3 4 5
2 3 4
输出:
17.5
完整代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
//一、分析问题
//已知: n ( 3≤n≤100 )个梯形的上底、下底和高;
//未知:请问这 n 个梯形中,最大面积的梯形的面积是多少?(结果保留 1 位小数)
//关系:梯形面积的求解公式为 S=(a+b)×h/2
//二、数据定义
int n,a,b,h;
double s=0,t;
//三、数据输入
cin>>n;
//四、数据计算
for(int i=0;i<n;++i){
cin>>a>>b>>h;
t=(a+b)*h/2.0;
s=s>t?s:t;
}
//五、输出结果
cout<<fixed<<setprecision(1)<<s;
return 0;
}