编写一个c语言程序:利用指针实现从键盘输入若干个数放入一个一维数组中(数组长度自定义),用0结束输入并放在最后一个元素中。通过指针输出数组的所有元素、正数的个数,负数的个数以及正数平均值。
时间: 2024-02-01 21:13:02 浏览: 32
以下是一个实现此功能的 C 语言程序:
```c
#include <stdio.h>
int main() {
int nums[100]; // 定义一个最大长度为 100 的数组
int *p = nums; // 定义一个指针指向数组的第一个元素
int num, count_pos = 0, count_neg = 0, sum_pos = 0, len = 0;
// 输入数据
printf("请输入若干个整数(以0结束):");
do {
scanf("%d", &num);
*p++ = num;
len++;
} while (num != 0 && len < 100); // 最多输入 100 个数
p = nums; // 指向数组的第一个元素
// 输出数组的所有元素
printf("数组的所有元素为:");
while (*p != 0) {
printf("%d ", *p);
if (*p > 0) {
count_pos++;
sum_pos += *p;
} else if (*p < 0) {
count_neg++;
}
p++;
}
// 计算正数的平均值
float avg_pos = count_pos > 0 ? (float) sum_pos / count_pos : 0.0;
// 输出结果
printf("\n正数的个数为:%d\n负数的个数为:%d\n正数的平均值为:%.2f\n", count_pos, count_neg, avg_pos);
return 0;
}
```
程序的执行过程如下:
```
请输入若干个整数(以0结束):1 2 -3 4 5 0
数组的所有元素为:1 2 -3 4 5
正数的个数为:3
负数的个数为:1
正数的平均值为:2.67
```