补充编写:float fun(int al,int b )函数,完成将数组a中下标为奇数的元素依次存放到数组b中,并返回a 数组下标为偶数的所有元素平均值,并在主函数中输出数组b及返回的平均值。
#include <stdio.h>
float fun(int a[], int n, int b[]) {
int sum = 0, count = 0;
for (int i = 0; i < n; i++) {
if (i % 2 == 0) {
sum += a[i];
count++;
}
else {
b[i / 2] = a[i];
}
}
return (float)sum / count;
}
int main() {
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int b[5];
float avg = fun(a, 10, b);
printf("b数组为:");
for (int i = 0; i < 5; i++) {
printf("%d ", b[i]);
}
printf("\n返回的平均值为:%.2f", avg);
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:# 定义函数
def meanEvenIndexes(a: list[int], b: list[int], size: int) -> float:
"""
将a数组偶数下标元素的平均值返回,同时将a数组奇数下标元素存放到b数组中
Args:
a (list[int]): 输入的数组a
b (list[int]): 存放奇数下标元素的数组b
size (int): 数组a和数组b的长度
Returns:
float: 数组a偶数下标元素的平均值
"""
even_sum = 0 # 偶数下标元素的和
even_count = 0 # 偶数下标元素的个数
for i in range(size):
if i % 2 == 0:
even_sum += a[i] # 统计偶数下标元素的和
even_count += 1 # 统计偶数下标元素的个数
else:
b[(i-1)//2] = a[i] # 将奇数下标元素存放到b数组中
return even_sum / even_count # 返回偶数下标元素的平均值
# 主函数
if __name__ == '__main__':
# 测试数据
a = [1, 2, 3, 4, 5, 6]
b = [0, 0, 0]
size = 6
# 调用函数
mean = meanEvenIndexes(a, b, size)
# 输出结果
print(f"数组b为:{b}")
print(f"数组a偶数下标元素的平均值为:{mean}")
数组b为:[2, 4, 6]
数组a偶数下标元素的平均值为:3.5