标题:请教个问题
取消只看楼主
岳飞再世YUE
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-4-16
结帖率:50%
已结贴  问题点数:20 回复次数:3 
请教个问题
#include<stdio.h>
int main()
{
    void max_min(float a[10]);
    float a[10],sum,average;
    int i;
    printf("\n");
    for(i=0;i<10;i++)
    {printf("请输入评委%d的打分:",i+1);
    scanf("%f",&a[i]);}
    max_min(a);
        for(i=0;i<8;i++)
            printf(" %2.2f ",a[i]);
        printf("\n");
        sum=0;
    for(i=0;i<8;i++)
        sum=sum+a[i];
    average=sum/8;
        printf("故平均分为:%3.2f\n",average);
    return 0;
}
void max_min(float b[10])
{    float max,min;
    int t1,t2,i;
    max=b[0];
    t1=0;
    for(i=0;i<10;i++)
   
        if(max<b[i])
        {
            max=b[i];
            t1=i;
        }
    for(i=t1;i<=10;i++)
        b[i]=b[i+1];   /*找出最大值的坐标,并将所有之后的数字前移*/
   
    min=b[0];
    t2=0;
   
    for(i=0;i<10;i++)
        if(min>b[i])
        {
            min=b[i];
            t2=i;
        }
   
    for(i=t2;i<9;i++)
        b[i]=b[i+1]; /*同上,找最小的*/
}
这个程序是为了去掉数组中最大最小值并输出(保持原来顺序不要动的输出)然后计算均值并输出,但是运行起来每次被删的都只有最大值和最后一个值。。不知道为什么,有大神能剖析一下为什么吗?十分感谢!
搜索更多相关主题的帖子: include average return 
2017-04-26 23:56
岳飞再世YUE
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-4-16
得分:0 
回复 2楼 renkejun1942
额。。我主要是纠结。。我这个到底哪儿的逻辑有问题吗?为什么最大值丢失的就没问题,最小值就会出问题呢?
2017-04-27 00:14
岳飞再世YUE
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-4-16
得分:0 
回复 2楼 renkejun1942
不过还是要谢谢大佬指点,如果能看看我这个源代码问题出在哪儿就更好了
2017-04-27 00:16
岳飞再世YUE
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-4-16
得分:0 
回复 5楼 grmmylbs
两处?什么意思呀?
2017-04-28 09:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476475-1-1.html




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

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