| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3105 人关注过本帖
标题:求改进代码( 简单的去最大值最小值 求剩余的平均值) 本人初学者
只看楼主 加入收藏
死神之吻
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-3-18
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:11 
求改进代码( 简单的去最大值最小值 求剩余的平均值) 本人初学者
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    float a, b, c, d, e, max, min,f;

    printf("请输入5个评委所打的成绩:\n");
    scanf("%f,%f,%f,%f,%f",&a,&b,&c,&d,&e);
    max=a;
    if(max<b)
    {
        max=b;
    }
    if(max<c)
    {
        max=c;
    }
    if(max<d)
    {
        max=d;
    }
    if(max<e)
    {
        max=e;
    }
    min=a;
    if(min>b)
    {
        min=b;
    }
    if(min>c)
    {
        min=c;
    }
    if(min>d)
    {
        min=d;
    }
    if(min>e)
    {
        min=e;
    }
    if(max==a||min==a)
    {
        a=0;
    }
    if(max==b||min==b)
    {
        b=0;
    }
    if(max==c||min==c)
    {
        c=0;
    }
    if(max==d||min==d)
    {
        d=0;
    }
    if(max==e||min==e)
    {
        e=0;
    }
    f=(a+b+c+d+e)/3;
    printf("该选手的得分为:%0.1f\n",f);

    system("pause");
    return 0;
   
}

觉得代码复杂  求改进  我是新手
搜索更多相关主题的帖子: max include 平均值 
2013-04-01 18:11
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
你可以用一个数组来存储5个分数,这样用循环实现判断,比如
float a[5],max
for(i=0;i<5;i++)
{
    if(a[i]>max) max=a[i];
}     

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-04-01 18:25
死神之吻
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-3-18
收藏
得分:0 
回复 2楼 pauljames
e 我只学了运算符和表达式    语句都还没学   if语句是我自己预习的   我是想问一下  在最基础的情况下 还能改进不
2013-04-01 18:29
死神之吻
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-3-18
收藏
得分:0 
而且你的那个 ,,,,看不懂啊
2013-04-01 18:29
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:10 
可以啊 你不是已经学了表达式了吗 那就用条件表达式
程序代码:
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    float a, b, c, d, e, max, min;

    printf("请输入5个评委所打的成绩:\n");
    scanf("%f,%f,%f,%f,%f",&a,&b,&c,&d,&e);
    
    
    (((a>b?max=a:max=b)>c?max:max=c)>d?max:max=d)>e?max:max=e;
    (((a<b?min=a:min=b)<c?min:min=c)<d?min:min=d)<e?min:min=e;
    
    printf("去掉一个最高分:%0.1f\n",max);
    printf("去掉一个最低分:%0.1f\n",min);
    printf("该选手的得分为:%0.1f\n",(a+b+c+d+e-max-min)/3);

    system("pause");
    return 0;
    
}

人生是一场错过 愿你别蹉跎
2013-04-01 19:02
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
回复 3楼 死神之吻
基础的你做到这里已经很好了,慢慢学,学深了再试着把以前的程序进行简化

三十年河东,三十年河西,莫欺少年穷!
2013-04-01 19:13
刘邦
Rank: 2
等 级:论坛游民
帖 子:32
专家分:36
注 册:2013-3-22
收藏
得分:0 
LZ已经很不错咯哦,楼上正解。LZ可以自己再往后面预习哈,不说看到数组。看if。if……else吧。什么嵌套的。对这个有用的。
2013-04-01 21:24
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:10 
1.输入5个数
2.排序
3.去掉a[0]和a[n-1]
4.sum / (n - 2);

仰望星空...........不忘初心!
2013-04-01 21:26
yctchxf
Rank: 6Rank: 6
来 自:盐城
等 级:侠之大者
威 望:2
帖 子:176
专家分:454
注 册:2012-4-10
收藏
得分:0 
学程序 先要懂 后才能求精……慢慢来……
2013-04-01 21:44
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
不错,有这样的感觉不错了。往后面看看就可以改进了,自己读用点心

Maybe
2013-04-01 22:38
快速回复:求改进代码( 简单的去最大值最小值 求剩余的平均值) 本人初学者
数据加载中...
 
   



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

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