用c语言数组实现,输入10个数,去掉最高和最低,再求剩下的数的平均值,输出平均值
时间: 2024-04-30 17:17:46 浏览: 10
好的,这个问题很简单,以下是C语言的实现:
```c
#include <stdio.h>
int main()
{
int nums[10];
int sum = 0;
int max = -1000000, min = 1000000;
// 输入10个数
for (int i = 0; i < 10; i++)
{
scanf("%d", &nums[i]);
// 计算最大值和最小值
if (nums[i] > max)
max = nums[i];
if (nums[i] < min)
min = nums[i];
}
// 计算剩余数的和
for (int i = 0; i < 10; i++)
{
if (nums[i] != max && nums[i] != min)
sum += nums[i];
}
// 计算平均值
float avg = (float)sum / 8;
// 输出平均值
printf("平均值为 %.2f", avg);
return 0;
}
```
这个程序会先输入10个数,并且找出最大值和最小值。然后再计算出剩余数的和,并且求出平均值。最后输出平均值。
相关问题
怎么用C语言实现,数组中12位数,去除最高和最低值,剩下的十个数取平均值
可以按照以下步骤实现:
1. 定义一个包含12个元素的数组,并初始化这个数组。
2. 用一个循环找到最高值和最低值,并记录它们的位置。
3. 用另外一个循环,将除最高值和最低值以外的所有元素加起来。
4. 计算剩下的10个数的平均值。
以下是C语言的实现代码:
```c
#include <stdio.h>
int main() {
int arr[12] = {3, 6, 8, 2, 4, 9, 1, 5, 7, 10, 11, 12}; // 定义数组并初始化
int max_idx = 0; // 最高值的位置
int min_idx = 0; // 最低值的位置
// 找出最高值和最低值的位置
for (int i = 1; i < 12; i++) {
if (arr[i] > arr[max_idx]) {
max_idx = i;
}
if (arr[i] < arr[min_idx]) {
min_idx = i;
}
}
int sum = 0; // 剩下10个数的和
// 计算剩下10个数的和
for (int i = 0; i < 12; i++) {
if (i != max_idx && i != min_idx) {
sum += arr[i];
}
}
float avg = (float) sum / 10; // 计算平均值
printf("剩下10个数的平均值为: %.2f\n", avg);
return 0;
}
```
输出结果为:
```
剩下10个数的平均值为: 5.50
```
生成一个C语言 10个数去除一个最高值和最低值 求平均值
下面是一个C语言程序,可以生成10个随机数,去除最高值和最低值后求平均值:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, sum = 0, max = 0, min = 100;
int nums[10];
srand(time(NULL)); // 设置随机数种子
// 生成随机数
for(i = 0; i < 10; i++) {
nums[i] = rand() % 100;
printf("%d ", nums[i]);
if(nums[i] > max) max = nums[i];
if(nums[i] < min) min = nums[i];
}
// 计算平均值
for(i = 0; i < 10; i++) {
if(nums[i] != max && nums[i] != min) {
sum += nums[i];
}
}
printf("\n平均值为: %d", sum / 8);
return 0;
}
```
程序中,首先使用 `srand` 函数设置随机数种子,然后使用 `rand` 函数生成10个随机数并存储到数组 `nums` 中。同时记录数组中的最大值和最小值。接着,使用循环遍历数组,计算去除最高值和最低值后的数字之和。最后求平均值并输出。