21xrx.com
2024-11-22 10:11:35 Friday
登录
文章检索 我的文章 写文章
C++代码实现去掉最高分最低分
2023-06-28 00:14:11 深夜i     --     --
C++ 实现 去掉 最高分 最低分

在编程领域,算法是非常重要的一部分,它可以帮助我们解决许多问题。一个常见的问题是去掉一组数列中最高分和最低分,我们可以使用C++来实现这个算法。

首先,我们需要将这组数列存储在一个数组中,接下来就可以开始编写代码了。

//定义数组存储数列

int scores[] = 88;

//获取数组长度

int length = sizeof(scores) / sizeof(int);

//定义变量存储最高分和最低分的索引

int maxIndex = 0;

int minIndex = 0;

//循环遍历找到最大值和最小值的索引

for (int i = 1; i < length; i++) {

  if (scores[i] > scores[maxIndex])

    maxIndex = i;

  if (scores[i] < scores[minIndex])

    minIndex = i;

}

//将最高分和最低分的索引的数值改为0

scores[maxIndex] = 0;

scores[minIndex] = 0;

//定义sum变量并加上数组中的数值

int sum = 0;

for (int i = 0; i < length; i++) {

  sum += scores[i];

}

//计算平均分数

float average = (float)sum / (length - 2);

//输出平均分数

std::cout << "去掉最高分和最低分后的平均分数为:" << average << std::endl;

在上面的代码中,我们首先定义了一个数组来存储数列,然后使用for循环遍历数组,找到数组中最高分和最低分的索引,然后将这两个索引的数值改为0,以便后面计算平均分数时不计算这两个分数。接着,我们通过循环计算整个数组的分数总和,并用它除以数组长度减去2,得出平均分数。

最后,我们在控制台上输出平均分数。这个算法可以轻松地扩展到任何一个有序数列中,并且可以根据需要插入排序来进行优化。

另外,值得注意的是,虽然这个算法可以去掉一个数组中的最高分和最低分,但不能保证这两个值只出现一次。如果希望解决这个问题,可以在处理前将数组排序并确保这两个值只出现一次。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复