| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 670 人关注过本帖
标题:初学者,求解!
只看楼主 加入收藏
記憶づシ
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-11-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
初学者,求解!
Description

青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。

Input

输入数据有多组,每组占一行,每行的第一个数是n( 2 < n < 100),表示评委的人数,然后是n个评委的打分。

Output

对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。

Sample Input


3 99 98 97
4 100 99 98 97


Sample Output


98.00
98.50

写了很多次,就是不对,希望有高手相助!
搜索更多相关主题的帖子: 求解 
2010-11-19 21:56
shafeilong
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:236
专家分:1434
注 册:2009-3-21
收藏
得分:8 
程序代码:
#include <stdio.h>
float Average(float a[]);
int main(void)
{

 float a[10];

 for(int i = 0;i < 10;i++)

 {
  printf("输入第%d个数:\n",i+1);
  scanf("%f",&a[i]);

 }

 printf("去掉最大最小值后的平均值为: %.2f\n",Average(a));

 return 0;
}
float Average(float a[])
{

 float sum = 0.0,max = a[0],min = a[0];

 for(int x = 0;x <= 9;x++)

 {
  if(a[x] > max) max = a[x];
  if(a[x] < min) min = a[x];
  sum += a[x];

 }

 return (sum-max-min)/8;
}
给个类似的
2010-11-19 22:58
kspliusa
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:98
专家分:178
注 册:2009-9-27
收藏
得分:0 
LZ可以把你的代码贴出来,这样大家好给你改啊。。。不然你写的依旧不知道哪错了啊!
2010-11-19 23:02
記憶づシ
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-11-19
收藏
得分:0 
回复 3楼 kspliusa
嗯,但问题就是不会写啊,才学两个月的C++,你会吗?用简单的循环语句写,谢谢!
2010-11-19 23:17
記憶づシ
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-11-19
收藏
得分:0 
回复 楼主 記憶づシ
大哥,能用最简单的c++语言写吗?你写得我都还没学到!小弟才初学
2010-11-19 23:25
a1023730237
Rank: 1
来 自:安徽
等 级:新手上路
帖 子:1
专家分:1
注 册:2010-11-19
收藏
得分:1 
先定义一个函数,让个个数比较不是最大,最小的放到函数里相加,再除加的个数就是平均数了
2010-11-20 06:27
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:1 
会不会一行不足三个数?去掉个最大最小的就没数了?

(额,没看见 2 < n < 100 的条件……


[ 本帖最后由 pangding 于 2010-11-21 19:39 编辑 ]
2010-11-21 19:36
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:10 
大概类似这样的就行,其实输出的那个用 C 式的 printf 还是更简单一些。
C++ 的格式化输出一般来说比较麻烦。
程序代码:
#include <iostream>
#include <iomanip>
using namespace std;

int main(int argc, char *argv[])
{
  int cnt, n, i, max, min, sum;

  cin >> n >> max;
  sum = min = max; cnt = n - 2;

  while (--n) {
    cin >> i;
    sum += i;
    if (i > max) max = i;
    else if (i < min) min = i;
  }

  cout << fixed << setprecision(2)
      << (double)(sum-max-min) / cnt << endl;
}



[ 本帖最后由 pangding 于 2010-11-21 20:11 编辑 ]
2010-11-21 20:07
快速回复:初学者,求解!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019247 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved