1. 程式人生 > 其它 >資訊學奧賽一本通例題2.14~2.16

資訊學奧賽一本通例題2.14~2.16

技術標籤:c++資訊學奧賽一本通c++

例2.14

已知某班有男同學x位,女同學y位,x位男生平均分是87分,y位女生的平均分是85,問全體同學平均分是多少分?

【分析】 男女生的人數需要使用者輸入,然後根據題意(x87+y85)/(x+y)求出全體同學的平均分。

程式如下:

#include<iostream>
using namespace std;
int main()
{
    int x,y;
    cin>>x>>y;//輸入男女人數
    cout<<float(x*87+y*85)/(x+y)<<endl;
    //資料型別強制轉換,按實數格式輸出,4位小數
   return 0; }

例2.15

歌手大獎賽上6名評委給一位參賽者打分,6個人打分的平均分為9.6分;如果去掉一個最高分,這名參賽者的平均分為9.4分;如果去掉一個最低分,這名參賽者的平均分為9.8分;如果去掉一個最高分和一個最低分,這名參賽者的平均是多少?

【分析】 首先求出6名評委的總分,然後根據去掉最高分的總分和最低分的總分,求出最高分的分值和最低分的分值,最後總分減去最高分和最低分除以4即是答案。

程式如下:

#include<cstdio>
int main()
{   
	float high,low,sc_all,sc_high,sc_low,ans;
   sc_all=
6*9.6; //求6名評委的總分    sc_high=5*9.4; //求去掉最高分後的總分    sc_low=5*9.8;//求去掉最低分後的總分    high=sc_all-sc_high; //求最高分    low=sc_all-sc_low; //求最低分    ans=(sc_all-high-low)/4; //求平均分    printf("%5.2f\n",ans);//%5.2f按實數格式輸出,保留2位小數    return 0;   }

執行結果: 9.60

例2.16

傳說古代的敘拉古國王海倫二世發現的公式,利用三角形的三條邊長來求取三角形面積。已知△ABC中的三邊長分別為a,b,c,求△ABC的面積。(提示:海倫公式,其中p=(a+b+c)/2 )

在這裡插入圖片描述

【分析】 公式中p是三角形周長的一半,求出p後直接代入海倫公式中求得面積。

#include<cstdio>//Dev C++可呼叫<iostream>和<stdio.h>庫
#include<math.h>//在Dev C++中可呼叫數學函式庫cmath
int main()
{  
	float a,b,c,p,s;
    scanf("%f%f%f",&a,&b,&c);//輸入三角形的三邊
    p=(a+b+c)/2;//求出p的值
    s=sqrt(p*(p-a)*(p-b)*(p-c));//根據p求面面積,sqrt是開方函式
    printf("%0.3f\n",s);//輸出面積,0.3f按實際位數輸出,保留3位小數
    return 0;
}

執行結果:
   輸入:3 4 5 輸出:6.000