本关任务:编写程序,输入n个整数存入一维数组,统计输出其中的正数、负数和零的个数。 相关知识 编程要求 根据提示,在右侧编辑器补充代码。 main函数实现如下: int main() { int a[100];//存放输入数据的数组 int b[3];//存放正数,负数,0的个数 int n=0; n = input(a); process(a, n, b); printf("正数的个数为%d,负数的个数为%d,零的个数为%d",b[0],
时间: 2024-01-15 10:04:31 浏览: 51
下面是代码实现:
```
#include <stdio.h>
int input(int a[]) {
int n;
printf("请输入数组长度n:");
scanf("%d", &n);
printf("请输入数组元素,以空格隔开:\n");
for (int i = 0; i < n; ++i) {
scanf("%d", &a[i]);
}
return n;
}
void process(int a[], int n, int b[]) {
int positive = 0, negative = 0, zero = 0;
for (int i = 0; i < n; ++i) {
if (a[i] > 0) {
++positive;
} else if (a[i] < 0) {
++negative;
} else {
++zero;
}
}
b[0] = positive;
b[1] = negative;
b[2] = zero;
}
int main() {
int a[100];
int b[3];
int n = input(a);
process(a, n, b);
printf("正数的个数为%d,负数的个数为%d,零的个数为%d\n", b[0], b[1], b[2]);
return 0;
}
```
代码思路:
1. 先定义一个 input 函数,用于读入数组长度和元素。
2. 定义一个 process 函数,用于统计正数、负数和零的个数。
3. 在 main 函数中,先读入数组,然后调用 process 函数进行处理,并输出结果。
注意事项:
1. 输入的整数可能为负数,所以要用 else if 判断。
2. 数组下标从 0 开始,循环条件为 i < n。