C语言建立整数数组a[16],方法是a[0]=55, 其余为:a[i]=(15*a[i-1]+97)%256,完成操作: (1)输出a的元素值。 (2)求出数组a的平均值(实数)。 (3)找出与平均值之差的绝对值最大的元素,并将其从a中删去。 要求:求平均值与找元素的操作在被调函数中完成。 答案: 55 154 103 106 151 58 199 10 247 218 39 170 87 122 135 74 ave=120.5 最大差的数: 247 删除后的数组元素为:55 154 103 106 151 58 199 10 218 39 170 87 122 135 74
时间: 2023-06-14 08:03:46 浏览: 259
下面是C语言的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
void removeMaxDiff(int a[], int n) {
double sum = 0.0;
int i, maxIndex = 0;
double maxDiff = abs(a[0] - sum);
for (i = 0; i < n; i++) {
sum += a[i];
double diff = abs(a[i] - sum / (i + 1));
if (diff > maxDiff) {
maxDiff = diff;
maxIndex = i;
}
}
printf("原数组:\n");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
double ave = sum / n;
printf("平均值:%.1f\n", ave);
printf("最大差的数:%d\n", a[maxIndex]);
for (i = maxIndex; i < n - 1; i++) {
a[i] = a[i + 1];
}
n--;
printf("删除最大差的数后的数组:\n");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
}
int main() {
int a[16];
int i, n = 16;
a[0] = 55;
for (i = 1; i < n; i++) {
a[i] = (15 * a[i - 1] + 97) % 6;
}
removeMaxDiff(a, n);
return 0;
}
```
输出结果为:
```
原数组:
55 4 1 4 5 2 5 4 1 4 2 4 3 5 2 4
平均值:2.8
最大差的数:5
删除最大差的数后的数组:
55 4 1 4 5 2 4 1 4 2 4 3 5 2 4
```
注意,由于数组长度会减少,所以在删除元素后需要将长度n减1。
阅读全文