编程启蒙 | 第53课 找最值

文摘   教育   2024-11-01 14:33   广东  
《信息学奥赛一本通●编程启蒙 C++版
适用于刚开始学习 C++语言的学中高年级、初中低年级的同学。


第五章 数的存储与组织

                                         53课 找最值


3312【例53.1】 最大数位置

http://bas.ssoier.cn:8086/problem_show.php?pid=3312

#include<bits/stdc++.h>using namespace std;long long a[1001];int n;int main() {  cin>>n;  for(int i=0; i<n; i++) {    cin>>a[i];  }  cout<< max_element(a,a+n)-a+1;  return 0;}


3313【例53.2】 白细胞计数

http://bas.ssoier.cn:8086/problem_show.php?pid=3313

#include<cstdio>#include<iostream>#include<cmath> //因为要用到abs函数(返回绝对值) #include<algorithm> //因为要用到sort排序 using namespace std;double a[310],sum=0,m,avg;int main(){  int n,i;  cin>>n;  for(i=0;i<n;i++)     cin>>a[i];  sort(a,a+n);//给这些数组排序     for(i=1;i<n-1;i++) //从1开始,n-1结束,就不包含了1个最小值和1个最大值     sum+=a[i];   avg=sum/(n-2);  m=abs(a[1]-avg);//m用来存储误差,最保险地先赋值为第一个有效数的误差    for(i=2;i<n-1;i++)//这样只需从2开始   {      if(abs(a[i]-avg)>m) m=abs(a[i]-avg);//不断更新最大误差   }   printf("%.2lf %.2lf",avg,m);    return 0; }


3314练53.1 打擂台

http://bas.ssoier.cn:8086/problem_show.php?pid=3314

#include<bits/stdc++.h>using namespace std;int main(){  double ar[100]={0};  double max;    for(int i=0;i<10;i++)   {    cin>>ar[i];  }  //打擂台找出最大的数  max=ar[0];  for(int i=1;i<10;i++)   {    if(ar[i]>max)    {      max=ar[i];    }  }  cout<<max;     return 0;}


3315练53.2 小明做题

http://bas.ssoier.cn:8086/problem_show.php?pid=3315

#include <bits/stdc++.h>using namespace std;int n,a,b,ans;double maxx;
int main() { cin>>n; for(int i=1; i<=n; i++) { cin>>a>>b; if(maxx<1.0*b/a) { maxx=1.0*b/a; ans=i; } } cout<<ans; return 0;}


更多信奥内容,请关注【信奥营】

[1].信息学奥赛一本通(C++)题解及知识点

[2].信奥一本通.编程启蒙C++题解合集

[3].信息学奥赛 | 备赛CSP-JS 常用网站

[4].信息学奥赛 | 信息学竞赛推荐书(更新)

信奥营
信息学奥赛、白名单赛事、科技特长升学!
 最新文章