c语言int输出10个数字,计算这个数组的平均分,去掉最高分和最低分
时间: 2024-03-11 13:47:05 浏览: 66
好的,这是一个比较基础的C语言题目,可以通过以下代码实现:
```c
#include <stdio.h>
int main() {
int nums[10];
int sum = 0;
int max = 0;
int min = 100;
// 输入10个数字,并计算它们的和
for (int i = 0; i < 10; i++) {
printf("请输入第%d个数字:", i + 1);
scanf("%d", &nums[i]);
sum += nums[i];
// 记录最大值和最小值
if (nums[i] > max) {
max = nums[i];
}
if (nums[i] < min) {
min = nums[i];
}
}
// 去掉最高分和最低分,并计算平均分
float avg = (sum - max - min) / 8.0;
printf("平均分为:%.2f\n", avg);
return 0;
}
```
这段代码会首先让用户输入10个数字,并计算它们的总和。同时,记录下最大值和最小值。最后,去掉最高分和最低分,并计算平均分。注意,在计算平均分时,需要将总和减去最高分和最低分,再除以8.0,而不是除以10.0,因为去掉了两个数字。
相关问题
C语言数组输入10个分数去掉最高分最低分,求平均值
在C语言中,处理这个需求通常涉及到输入、排序以及计算平均值。下面是一个简单的示例程序,假设用户输入10个整数分数,并通过循环处理最高分和最低分,最后计算并打印其余分数的平均值:
```c
#include <stdio.h>
// 函数声明
void input_scores(int scores[], int n);
double calculate_average(int scores[], int n);
int main() {
int scores[10]; // 存储分数的数组
int n;
// 输入10个分数
printf("请输入10个分数:\n");
input_scores(scores, 10);
// 排序(这里简化为冒泡排序,实际应用中可以用更高效的算法)
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9 - i; j++) {
if (scores[j] > scores[j + 1]) {
int temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
// 移除最高分和最低分,计算平均值
double average = calculate_average(scores + 1, 8); // 从第二个元素开始计算
printf("去除最高分和最低分后的平均分:%.2f\n", average);
return 0;
}
// 输入分数的函数
void input_scores(int scores[], int n) {
for (int i = 0; i < n; i++) {
scanf("%d", &scores[i]);
}
}
// 计算平均值的函数
double calculate_average(int scores[], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += scores[i];
}
return (double) sum / n;
}
```
运行此程序后,用户将按照提示输入10个分数,程序会计算并显示去除最高分和最低分后的平均分。
用C语言去掉一组数组的最高分和最低分求平均值
好的,您可以参考以下代码实现该功能:
```c
#include <stdio.h>
int main() {
int scores[] = {90, 85, 92, 88, 95, 80};
int len = sizeof(scores) / sizeof(scores[0]); // 数组长度
int max = scores[0], min = scores[0]; // 初始化最高分和最低分
int sum = 0;
// 找到最高分和最低分
for (int i = 0; i < len; i++) {
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
}
// 求和(去掉最高分和最低分)
for (int i = 0; i < len; i++) {
if (scores[i] != max && scores[i] != min) {
sum += scores[i];
}
}
// 求平均值
float avg = (float)sum / (len - 2);
printf("去掉最高分和最低分的平均值为: %.2f\n", avg);
return 0;
}
```
这段代码先找出数组中的最高分和最低分,然后再去掉这两个分数求和,最后除以数组长度减去2(去掉最高分和最低分)即可得到平均值。
阅读全文