用c语言写用指针与数组作为函数参数, 设计函数按如下四种情况求整型一维数组a[10]的平均值。 ·实参为数组名, 形参为数组 ·实参为数组名, 形参为指针 ·实参为指针, 形参为数组 ·实参为指针, 形参为指针
时间: 2025-02-22 16:32:27 浏览: 43
在C语言中,你可以设计四个不同的函数来计算整型数组的平均值,分别针对上述四种情况:
1. **数组作为形参** (传入数组名)
```c
#include <stdio.h>
double average_array_name(int a[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += a[i];
}
return (double)sum / size;
}
// 使用示例
int main() {
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
double avg = average_array_name(arr, sizeof(arr) / sizeof(arr[0]));
printf("Average with array name: %.2f\n", avg);
return 0;
}
```
2. **指针作为形参** (传入数组名,但处理实际操作的是指针)
```c
#include <stdio.h>
double average_array_ptr(int *arr, int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += *arr++;
}
return (double)sum / size;
}
// 使用示例同上,只需将arr传递给average_array_ptr
```
3. **数组作为形参** (传入指向数组的指针)
```c
#include <stdio.h>
double average_array_ptr_to(int (*ptr)[10], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += ptr[i];
}
return (double)sum / size;
}
// 使用示例
int main() {
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
double avg = average_array_ptr_to(&arr[0], sizeof(arr) / sizeof(arr[0]));
printf("Average with array pointer: %.2f\n", avg);
return 0;
}
```
4. **两个指针作为形参** (都传入指针)
```c
#include <stdio.h>
double average_two_ptrs(int *arr1, int *arr2, int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += *(arr1 + i) + *(arr2 + i); // 或者直接 sum += arr1[i] + arr2[i];
}
return (double)sum / (2 * size);
}
// 使用示例同上,分别为两部分数组提供指针
```
在所有这四个例子中,你需要确保提供的大小`size`是正确的,以便于遍历整个数组。
阅读全文
相关推荐


















