标题:有哪位大神可以帮我看一下,我帮写的关于计算输入的几个数中去掉最大值和最 ...
只看楼主
宇智波鼬123
Rank: 2
来 自:天津
等 级:论坛游民
威 望:4
帖 子:42
专家分:46
注 册:2014-6-21
结帖率:54.55%
已结贴  问题点数:10 回复次数:5 
有哪位大神可以帮我看一下,我帮写的关于计算输入的几个数中去掉最大值和最小值后计算平均值的程序,编译是没有错误的但是运行起来不行。
#include<iostream.h>

void main()
{
    double m[10];
    int n,i,temp,a;
   double sum=0,average;
    cin>>"n=">>n;
    for(i=0;i<n;i++)
    {
        cin>>m[i];
   
    }

    if(m[i]<m[i+1])
        {
            temp=m[i];
            m[i]=m[i+1];
            m[i+1]=temp;
        }

if(m[i]!=m[0] && m[i]!=m[n-1])
for(a=1;a<=n-2;a++)
{
    sum+=m[a];
}

average=sum/(n-2);
cout<<average<<endl;

}
搜索更多相关主题的帖子: average 最大值 平均值 double 
2014-06-22 20:46
funyh250
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:26
帖 子:290
专家分:1573
注 册:2013-12-25
得分:5 
程序代码:
#include<iostream>

using namespace std;        ***************
void main()
{
    double m[10],temp;
    int n,i,a;
   double sum=0,average;
   cout<<"n="<<endl;      *********
    cin>>n;              **********
    for(i=0;i<n;i++)
    {//***
        cin>>m[i];
    
    if(m[i]<m[i+1])
        {
            temp=m[i];
            m[i]=m[i+1];
            m[i+1]=temp;
        }
    }//****

//if(m[i]!=m[0] && m[i]!=m[n-1])       *****************
for(a=1;a<=n-2;a++)
{
    sum+=m[a];
}

average=sum/(n-2);
cout<<"average="<<average<<endl;

}

学习是大事   吃喝拉撒睡是小事   其他的那都不是事
2014-06-22 22:56
宇智波鼬123
Rank: 2
来 自:天津
等 级:论坛游民
威 望:4
帖 子:42
专家分:46
注 册:2014-6-21
得分:0 
额,知道我错哪里了,输入  cin>>"n=">>n这个代码错了,其他的没有错,回复者,有没有注意我是要求去掉最大值和最小值之后取平均值的,所以是不是不应该把if(m[i]!=m[0] && m[i]!=m[n-1])这个给标注呢?不够还是感谢回复者。
2014-06-23 10:49
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:5 
这个程序好像只去掉了最小的一个值吧?也就是m[n-1],第一个元素m[0]不一定是最大值哦!
2014-06-24 13:52
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:0 
//****找最小值****
    for(i=0;i<n-1;i++)
        {
            if(m[i]<m[i+1])
            {
            temp=m[i];
            m[i]=m[i+1];
            m[i+1]=temp;
            }
        }
//****找最大值****
for(i=n-1;i>0;i--)
    {
         if(m[i]>m[i-1])
         {
           temp=m[i];m[i]=m[i-1];m[i-1]=temp;
         }
     }
//如此,m[0]为最大,m[n-1]最小。再遍历数组,把等于这二者的都忽略掉。
2014-06-24 14:08
宇智波鼬123
Rank: 2
来 自:天津
等 级:论坛游民
威 望:4
帖 子:42
专家分:46
注 册:2014-6-21
得分:0 
额我想弱弱的问一句我的这段程序
if(m[i]<m[i+1])
        {
            temp=m[i];
            m[i]=m[i+1];
            m[i+1]=temp;
        }
这不是排序吗?别管是降序还是升序,最大值和最小值都是第一个和最后一个啊
2014-06-24 21:04



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




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

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