求助!一维数组

2. 白细胞计数

题目ID:6281100分

最新提交:

Wrong Answer

0 分

历史最高:

Wrong Answer

40 分

时间限制: 1000ms

空间限制: 524288kB

题目描述

医院采样了某临床病例治疗期间的白细胞数量样本 nn 份,用于分析某种新抗生素对该病例的治疗效果。为了降低分析误差,要先从这 nn 份样本中去除一个数值最大的样本和一个数值最小的样本,然后将剩余 n−2n−2 个有效样本的平均值作为分析指标。同时,为了观察该抗生素的疗效是否稳定,还要给出该平均值的误差,即所有有效样本(即不包括已扣除的两个样本)与该平均值之差的绝对值的最大值。

现在请你编写程序,根据提供的 nn 个样本值,计算出该病例的平均白细胞数量和对应的误差。

输入格式

输入的第一行是一个正整数 nn(2<n≤3002<n≤300),表明共有 nn 个样本。
以下共有 nn 行,每行为一个浮点数,为对应的白细胞数量,其单位为 109/L109/L。数与数之间以一个空格分开。

输出格式

输出为两个浮点数,中间以一个空格分开。分别为平均白细胞数量和对应的误差,单位也是 109/L109/L。计算结果需保留到小数点后 22 位。

样例

Input 1

5 12.0 13.0 11.0 9.0 10.0

Output 1

11.00 1.00

样例解释

样本数目为5,去除最大的13.0和最小的9.0,剩余的样本为12.0,11.0,10.0,其平均数为11.00,误差为11.00与其他样本值的差的绝对值的最大值,即1.00。

数据范围

2<n≤3002<n≤300
我的代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
  double n,a[310],maxx=0,minn=1000000,maxx2=0,minn2=10000000,sum=0;
  cin>>n;
  for(long long i=1;i<=n;i++){
    cin>>a[i];
    if(a[i]>maxx)maxx=a[i];
    else if(a[i]<minn)minn=a[i];
    else if(a[i]>maxx2&&a[i]<=maxx)maxx2=a[i];
    else if(a[i]<minn2&&a[i]>=minn)minn2=a[i];
    sum=sum+a[i];
  }
  sum=sum-maxx-minn;
  cout<<fixed<<setprecision(2)<<sum/(n-2)<<" "<<max(abs(maxx2-(sum/(n-2))),abs(minn2-(sum/(n-2))));
}

格式化一下谢谢

显然当你最大值更新时次大值肯定会变,min同理

if(a[i]>maxx)maxx2=maxx,maxx=a[i];
else if(a[i]<minn)minn2=minn,minn=a[i];

70分

怎么格式化啊

好了,格式化了

@张博鑫 改了之后70分么?

哦,我知道了。当你判断最大最小值时,最大值和次大值不能同时判断,最小值和次小值不能同时判断,但大小同时判断不影响结果。所以这样。

if(a[i]>maxx)maxx=a[i];
else if(a[i]>maxx2&&a[i]<=maxx)maxx2=a[i];
if(a[i]<minn)minn=a[i];
else if(a[i]<minn2&&a[i]>=minn)minn2=a[i];

6. 验证子串

题目ID:9411必做题100分

时间限制: 1000ms

空间限制: 524288kB

题目描述

输入两个字符串,验证其中一个串是否为另一个串的子串。

输入格式

输入两个字符串, 每个字符串占一行,长度不超过 200 且不含空格。

输出格式

若第一个串 s1 是第二个串 s2 的子串,则输出 (s1) is substring of (s2)

否则,若第二个串 s2 是第一个串 s1 的子串,输出 (s2) is substring of (s1)

否则,输出 No substring

样例

Input 1

abc dddncabca

Output 1

abc is substring of dddncabca

这啥意思? @张博鑫 @金明轩

16. 凹凸曼打怪兽

题目ID:6272100分

最新提交:

Compile Error

0 分

历史最高:

Compile Error

0 分

时间限制: 1000ms

空间限制: 65536kB

题目描述

不同于常规奥特曼每次只有在最后紧要关头才能释放大招,凹凸曼总是能够在每次战斗时一招制敌,发挥自己的最大武力值 X 。

现在有若干只怪兽慕名而来想要找凹凸曼一较高下,但他根本不把他们放在眼里,只想早早结束战斗然后回家追剧。所以他按顺序可能一招单挑一个,也有可能一招单挑一群,请你帮忙计算一下他最少出手几招就可以结束战斗了。

而怪兽们也因为跟凹凸曼切磋失败后回家复盘经验、潜心修炼武力值在原有基础上长进了20%,请你也顺便计算一下修炼之后的怪兽们的武力值。

(注意,没有单只怪兽的武力值大于凹凸曼,因为凹凸曼是最强的。)

输入格式

输入两行:
第一行一个整数表示凹凸曼的武力值XX。
第二行若干个整数表示怪兽们的武力值aiai​;

输出格式

输出两行:
第一行输出一个整数表示最少出手的招数;
第二行按挑战顺序输出怪兽们修炼后的武力值,用空格隔开,结果保留一位小数。

样例

Input 1

10 5 3 4 2 1

Output 1

2 6.0 3.6 4.8 2.4 1.2

数据范围

ai<=X<=10000.ai​<=X<=10000.
1<=ai<=1000;1<=ai​<=1000;
最多有500只怪兽。咋做呀已红温