题目描述:从输入的n个学生成绩中,找出所有成绩中与平均知绝对偏差最大的学生成绩。输入格式:在一行中输入一个整数n(0<n<=100);在第二行中输入n个整数,整数之间用一个空格隔开。输出格式:在一行中输入一个整数,即与平均值绝对偏差最大的学生成绩。用c语言数组
时间: 2023-06-02 08:04:33 浏览: 316
好的,你的问题是关于在输入的n个学生成绩中找到与平均值绝对偏差最大的学生成绩,输入格式和输出格式都已给出,要求用C语言数组实现。我来帮你解答。
首先,我们需要计算出学生成绩的平均值。代码如下:
```
int n;
scanf("%d", &n);
int score[n];
double sum = 0;
for (int i = 0; i < n; i++) {
scanf("%d", &score[i]);
sum += score[i];
}
double avg = sum / n;
```
接下来,我们需要找出与平均值绝对偏差最大的学生成绩。绝对偏差可以用以下公式计算:
```
double abs_deviation = fabs(score[i] - avg);
```
我们可以通过两次遍历来找到最大的绝对偏差和对应的学生成绩。代码如下:
```
double max_abs_deviation = 0;
int max_score = 0;
for (int i = 0; i < n; i++) {
double abs_deviation = fabs(score[i] - avg);
if (abs_deviation > max_abs_deviation) {
max_abs_deviation = abs_deviation;
max_score = score[i];
}
}
printf("%d\n", max_score);
```
这样就完成了题目要求。完整代码如下:
```
#include <stdio.h>
#include <math.h>
int main() {
int n;
scanf("%d", &n);
int score[n];
double sum = 0;
for (int i = 0; i < n; i++) {
scanf("%d", &score[i]);
sum += score[i];
}
double avg = sum / n;
double max_abs_deviation = 0;
int max_score = 0;
for (int i = 0; i < n; i++) {
double abs_deviation = fabs(score[i] - avg);
if (abs_deviation > max_abs_deviation) {
max_abs_deviation = abs_deviation;
max_score = score[i];
}
}
printf("%d\n", max_score);
return 0;
}
```
希望能够帮到你,如果有其他问题可以继续追问哦!
阅读全文