C语言将6个16进制数据排序,分别去掉最大和最小的两个数据,剩下的两个数据求平均值
时间: 2024-03-15 18:45:22 浏览: 103
好的,针对您的问题,我可以给出以下的C语言代码实现:
```c
#include <stdio.h>
int main()
{
int num[6], i, j, temp;
float sum = 0;
// 输入6个16进制数字
printf("请输入6个16进制数据:\n");
for (i = 0; i < 6; i++) {
scanf("%x", &num[i]);
}
// 冒泡排序
for (i = 0; i < 5; i++) {
for (j = 0; j < 5 - i; j++) {
if (num[j] > num[j + 1]) {
temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
}
}
// 去掉最大和最小的两个数,求平均值
for (i = 1; i < 5; i++) {
sum += num[i];
}
printf("去掉最大和最小的两个数,其余四个数的平均值为:%.2f\n", sum / 4);
return 0;
}
```
代码中,首先通过循环和scanf函数输入6个16进制数字,并将其存储在数组num中。
接下来,我们使用冒泡排序将num数组中的数字从小到大排序。
然后,我们去掉最大和最小的两个数,即num[0]和num[5],并将剩下的四个数相加求和,最后除以4求得平均值。
最后,我们使用printf函数输出结果。
希望这个代码能够解决您的问题,如果有其他问题,请随时提出。
阅读全文