本文共 1034 字,大约阅读时间需要 3 分钟。
输入6个数,找出最大最小的去掉,其余的求平均数。输入 0 0 0 0 0 0 结束
思路1:用Bool矩阵记录,找出最大最小的去掉,然后对其他的四个进行求平均数(我的失误点在于没有正确的初始化)
思路2:给6个数排序,把第二个到第五个加和然后求平均数~
// author:seen// time:2015-09-24// POJ 3507#includeusing namespace std;int num[6];bool trek[6];int main(){ while(cin>>num[0]>>num[1]>>num[2]>>num[3]>>num[4]>>num[5]){ memset(trek,true,6*sizeof(bool)); //初始化bool矩阵 if(num[0]==0&&num[1]==0&&num[2]==0&&num[3]==0&&num[4]==0&&num[5]==0) break; int min=num[0],max = num[0],flag_min=0,flag_max=0,i; double sum=0; for(i=1;i<6;i++){ //找出最大最小数 if(num[i]>max) max = num[i]; if(num[i]
按照思路二写的代码就简单的多了,因为algorithm头文件封装了sort函数
#include#include using namespace std;int num[6];int main(){ while(cin>>num[0]>>num[1]>>num[2]>>num[3]>>num[4]>>num[5]){ double sum=0; if(num[0]==0&&num[1]==0&&num[2]==0&&num[3]==0&&num[4]==0&&num[5]==0) break; sort(num,num+6); //排序 for(int i=1;i<5;i++){ sum+=num[i]; } cout<
转载地址:http://hvujn.baihongyu.com/