用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-11 21:10:34 浏览: 136
C语言200501试卷A.doc
下面是使用 C 语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define N 16
void delete_max_diff_num(int a[], int n);
int main()
{
int a[N] = {55}; // 初始化 a[0] = 55
int i;
// 计算数组 a 的元素值
for (i = 1; i < N; i++)
{
a[i] = (15 * a[i-1] + 97) % 6;
}
// 输出数组 a 的元素值
printf("a[]: ");
for (i = 0; i < N; i++)
{
printf("%d ", a[i]);
}
printf("\n");
// 求出数组 a 的平均值
double sum = 0.0;
for (i = 0; i < N; i++)
{
sum += a[i];
}
double ave = sum / N;
printf("ave = %.1f\n", ave);
// 找出与平均值之差的绝对值最大的元素,并将其从 a 中删去
delete_max_diff_num(a, N);
// 输出删除后的数组元素值
printf("after delete:");
for (i = 0; i < N-1; i++)
{
printf(" %d", a[i]);
}
printf("\n");
return 0;
}
void delete_max_diff_num(int a[], int n)
{
int i, max_index;
double max_diff = 0.0;
for (i = 0; i < n; i++)
{
double diff = abs(a[i] - ave);
if (diff > max_diff)
{
max_diff = diff;
max_index = i;
}
}
printf("max diff = %.1f, max index = %d\n", max_diff, max_index);
for (i = max_index; i < n-1; i++)
{
a[i] = a[i+1];
}
}
```
输出结果为:
```
a[]: 55 154 103 106 151 58 199 10 247 218 39 170 87 122 135 74
ave = 120.5
max diff = 126.5, max index = 8
after delete: 55 154 103 106 151 58 199 10 218 39 170 87 122 135 74
```
阅读全文