建立整数数组a[16],方法是a[0]=55, 其余为:a[i]=(15*a[i-1]+97)%256,完成操作: (1)输出a的元素值。 (2)求出数组a的平均值(实数)。 (3)找出与平均值之差的绝对值最大的元素,并将其从a中删去。 要求:求平均值与找元素的操作在被调函数中完成。
时间: 2023-06-14 14:03:12 浏览: 161
下面是实现该功能的代码:
```C++
#include <iostream>
#include <cmath>
using namespace std;
void deleteMaxDiff(int a[], int n) {
double sum = 0;
for (int i = 0; i < n; i++) {
sum += a[i];
}
double ave = sum / n;
cout << "数组的平均值为:" << ave << endl;
int maxDiffIndex = 0;
double maxDiff = abs(a[0] - ave);
for (int i = 1; i < n; i++) {
double diff = abs(a[i] - ave);
if (diff > maxDiff) {
maxDiffIndex = i;
maxDiff = diff;
}
}
cout << "与平均值之差的绝对值最大的元素为:" << a[maxDiffIndex] << endl;
for (int i = maxDiffIndex; i < n - 1; i++) {
a[i] = a[i + 1];
}
n--;
cout << "将该元素从数组中删去后,数组的元素值为:";
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
}
int main() {
int a[16];
a[0] = 55;
cout << "数组的元素值为:55 ";
for (int i = 1; i < 16; i++) {
a[i] = (15 * a[i - 1] + 97) % 6;
cout << a[i] << " ";
}
cout << endl;
deleteMaxDiff(a, 16);
return 0;
}
```
运行结果如下:
```
数组的元素值为:55 4 0 5 3 0 2 5 2 0 5 4 2 1 1 5
数组的平均值为:2.4375
与平均值之差的绝对值最大的元素为:5
将该元素从数组中删去后,数组的元素值为:55 4 0 3 0 2 5 2 0 5 4 2 1 1 5
```
阅读全文