| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 655 人关注过本帖
标题:为何没有减去最小值
只看楼主 加入收藏
kbmjj123
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2009-3-10
结帖率:92.31%
收藏
 问题点数:0 回复次数:9 
为何没有减去最小值
/*歌星大奖赛*/
#include "stdio.h"
void main()
{
    int i,total_score=0,each_score;
    int max=0,min=0;
    for(i=1;i<=4;i++)
    {
        printf("请输入成绩:");
        scanf("%d",&each_score);
        while(min>each_score)
            min=each_score;
        while(max<each_score)
            max=each_score;
        total_score=total_score+each_score;
    }
    total_score=total_score-max-min;
    printf("去掉最高分和最低分后总分是:%d",total_score);
}

我这边怎么就减不了最小值的呃~~
搜索更多相关主题的帖子: include 大奖赛 
2010-07-03 15:31
qingmeisu200
Rank: 4
等 级:业余侠客
帖 子:113
专家分:215
注 册:2010-3-16
收藏
得分:0 
没看懂

我能!
2010-07-03 16:21
suntea
Rank: 2
等 级:论坛游民
帖 子:59
专家分:88
注 册:2010-6-24
收藏
得分:0 
#include "stdio.h"
void main()
{
    int i,total_score=0,each_score;
    int max=0,min=0;
    for(i=1;i<=4;i++)
    {
        printf("请输入成绩:");
        scanf("%d",&each_score);
        while(min>each_score)//min初始为0,只有负数才比0小,得分会是负数吗?
            min=each_score;
        while(max<each_score)
            max=each_score;
        total_score=total_score+each_score;
    }
    total_score=total_score-max-min;
    printf("去掉最高分和最低分后总分是:%d",total_score);
}
--------------------给你一种我的思路--------------------
有几个得分,就准备几个变量;
一次性读取所有变量;在准备max,min;
寻找读取分的的最大值和最小值;

最后,你懂的;

--------------------------------------------------------
给楼主实现下:
#include "stdio.h"
void main()
{
    int max,min,total = 0;
    int fenshu[4];//假设有4个给分人.可以用变量设置,给分人的个数;
    for(int i=0;i<=3;i++)
    {
        printf("输入分数:");
        scanf("%d",&fenshu[i]);
    }
    for(i=0;i<=3;i++) total += fenshu[i];
    max = min = fenshu[0];
    for(i=0;i<=3;i++)
    {   
        if(max<fenshu[i])
            max = fenshu[i];
        if(min>fenshu[i])
            min = fenshu[i];
    }
    printf("最高分是%d\n",max);
    printf("最低分数是%d\n",min);
    printf("去掉最高和最低分后,得分为%d\n",(total-max-min));
}

[ 本帖最后由 suntea 于 2010-7-3 17:31 编辑 ]
2010-07-03 16:56
kbmjj123
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2009-3-10
收藏
得分:0 
回复 3楼 suntea
哦哦~~~恩恩~~~没错~~那这么说的话~~我可以另max为最小的数,另min为最大的,然后再按程序进行,
至于你说的那个用数组来存放成绩,我知道~~~我想省一些内存来运行~~呵呵~~~谢谢了哈~~~
2010-07-05 13:05
parkour
Rank: 2
等 级:论坛游民
帖 子:63
专家分:39
注 册:2009-1-3
收藏
得分:0 
恭喜你
min是0
2010-07-05 20:47
parkour
Rank: 2
等 级:论坛游民
帖 子:63
专家分:39
注 册:2009-1-3
收藏
得分:0 
除非你输入的成绩有0,要不然min>each_score永远都假
死也进不到这个分支里面

最好是
程序代码:
        printf("请输入成绩:");
        scanf("%d", &each_score);
        max = min = each_score; 

2010-07-05 20:52
mashrb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:29
注 册:2010-6-30
收藏
得分:0 
最简单的修改,将min的值初始化为100,其它一点都不用改。便好了。

哈哈,是不是这方法更灵???
2010-07-05 21:21
parkour
Rank: 2
等 级:论坛游民
帖 子:63
专家分:39
注 册:2009-1-3
收藏
得分:0 
你这个想法有问题阿

千万不要假设人家输入什么东西

你以为100的算是最大的

但是高中就有150分制的科目

我如果用你这个来统计最小分都在100分以上的分数的话你就傻眼了

呵呵
2010-07-05 21:25
mashrb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:29
注 册:2010-6-30
收藏
得分:0 
兄弟,你说的是/*歌星大奖赛*/.....还是高考呀!??
2010-07-05 21:28
DestinyLord
Rank: 2
等 级:论坛游民
帖 子:26
专家分:41
注 册:2010-6-1
收藏
得分:0 
用limits.h里面的函数呀......int max = INT_MIN;int min = INT_MAX;就可以了

逆风的方向,更适合飞翔!
2010-07-06 19:44
快速回复:为何没有减去最小值
数据加载中...
 
   



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

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