| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 221 人关注过本帖
标题:遇到问题,求指点。
只看楼主 加入收藏
yrj2460
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-11-18
结帖率:0
收藏
已结贴  问题点数:5 回复次数:1 
遇到问题,求指点。
这个问题是20个评委打分 去掉最高分和最低分  取平均值的程序.我编的是这样
#include<stdio.h>
void main()
{ float score[20];
  float min,max,ave;
  float sum=0.0;
  int i;
  printf("input 20 score:\n");
  for(i=0;i<20;i++) scanf("%f",&score[i]);
  printf("\n");
  min=score[0];
  max=score[0];
  for(i=0;i<20;i++){
   sum=sum+score[i];
      if(score[i]>max) max=score[i];
      if(score[i]<min) min=score[i];
  }
  ave=(sum-max-min)/18;
  printf("The max=%f\n",max);
  printf("The min=%f\n",min);
  printf("The ave=%f\n",ave);
}

但是题目要求如果评委打得是0分 和 10分的话,该分数无效,请问该怎么改啊
搜索更多相关主题的帖子: max include 平均值 
2012-11-18 13:37
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:5 
void main()
{
    float score[20] = { 0 };
    float min,max,ave;
    float sum=0.0;
    int i;
    printf("input 20 score:\n");
    for(i=0;i<20;i++)
        scanf("%f",&score[i]);

    printf("\n");
    min=score[0];
    max=score[0];

    // 有效的分数的个数
    int nEnable = 0;   

    // 定义精度
#define MIN_FLOAT 0.0000001
#define FLOAT_EQ_ZERO(n) ((-MIN_FLOAT < (n) && (n) < MIN_FLOAT))   


    for(i=0;i<20;i++){
        if (!FLOAT_EQ_ZERO(score[i]) && !FLOAT_EQ_ZERO(score[i] - 10.0)) {   
            sum=sum+score[i];
            if(score[i]>max) max=score[i];
            if(score[i]<min) min=score[i];

            nEnable++;
        }
    }
    // 防止全部无效
    if (nEnable > 2) {  
        ave=(sum-max-min)/nEnable - 2;

        printf("The max=%f\n",max);
        printf("The min=%f\n",min);
        printf("The ave=%f\n",ave);
    }
}

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-11-18 19:32
快速回复:遇到问题,求指点。
数据加载中...
 
   



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

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