编程从键盘输入10个不为0的整型数,统计其中负数的个数并求出所有正数的平均值。(常规方法、用指针法)
时间: 2023-10-25 19:19:14 浏览: 68
常规方法实现:
```c
#include <stdio.h>
int main() {
int nums[10];
int negative_count = 0;
int positive_count = 0;
int positive_sum = 0;
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &nums[i]);
if (nums[i] < 0) {
negative_count++;
} else if (nums[i] > 0) {
positive_count++;
positive_sum += nums[i];
}
}
printf("负数的个数为:%d\n", negative_count);
if (positive_count > 0) {
printf("正数的平均值为:%f\n", (float)positive_sum / positive_count);
} else {
printf("没有正数\n");
}
return 0;
}
```
使用指针法实现:
```c
#include <stdio.h>
int main() {
int nums[10];
int negative_count = 0;
int positive_count = 0;
int positive_sum = 0;
int *p = nums;
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", p);
if (*p < 0) {
negative_count++;
} else if (*p > 0) {
positive_count++;
positive_sum += *p;
}
p++;
}
printf("负数的个数为:%d\n", negative_count);
if (positive_count > 0) {
printf("正数的平均值为:%f\n", (float)positive_sum / positive_count);
} else {
printf("没有正数\n");
}
return 0;
}
```
两种方法的核心思想都是遍历数组,统计负数的个数和正数的和以及个数。指针法和常规方法的区别在于指针法使用指针遍历数组,而常规方法使用下标访问数组元素。
阅读全文