. 写一个函数计通过键树输入的n个整数数据中的正数的个数,主函数通过函数调用的方式输出正数的个数。
时间: 2024-03-17 07:43:10 浏览: 23
好的,以下是一个简单的实现:
```c
#include <stdio.h>
int count_positive(int n) {
int count = 0;
for (int i = 0; i < n; i++) {
int num;
scanf("%d", &num);
if (num > 0) {
count++;
}
}
return count;
}
int main() {
int n;
printf("请输入整数个数:");
scanf("%d", &n);
int count = count_positive(n);
printf("正数的个数为:%d\n", count);
return 0;
}
```
该程序中的 `count_positive` 函数会循环读入 `n` 个整数,并统计其中正数的个数,最后将结果返回。主函数中会先读入整数个数 `n`,再调用 `count_positive` 函数计算正数个数,并输出结果。
注意事项:
1. 该程序假设输入的所有数据都是整数,如果输入的数据不是整数会导致程序崩溃或输出错误结果。
2. 程序中没有对输入的数据范围进行限制,如果输入的数据过大可能会导致程序崩溃或计算时间过长。
相关问题
用c语言编写一个程序,输入整数n,再输入n个整数,用自定义函数count记录正数负数和0的个数,输出统计结果
好的,以下是代码:
```c
#include <stdio.h>
void count(int arr[], int n, int* pos, int* neg, int* zero)
{
for (int i = 0; i < n; i++)
{
if (arr[i] > 0)
(*pos)++;
else if (arr[i] < 0)
(*neg)++;
else
(*zero)++;
}
}
int main()
{
int n;
printf("请输入整数n:");
scanf("%d", &n);
int arr[n];
printf("请输入n个整数:");
for (int i = 0; i < n; i++)
scanf("%d", &arr[i]);
int pos = 0, neg = 0, zero = 0;
count(arr, n, &pos, &neg, &zero);
printf("正数个数:%d,负数个数:%d,0的个数:%d\n", pos, neg, zero);
return 0;
}
```
代码解释:
1. 自定义函数count:输入数组arr、数组长度n和三个指向int类型的指针pos、neg、zero,用于记录正数、负数和0的数量。使用for循环遍历数组,根据元素的正负性和是否为0,分别将对应指针所指向的变量加1。
2. 主函数:输入整数n和n个整数,调用count函数统计正数、负数和0的数量,最后输出结果。
从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。定义一个函数fun的功能:计算数组元素中值为正数的平均值(不包括0)。
好的,我知道你的问题了。下面是实现该功能的代码:
```c
#include <stdio.h>
double fun(int *arr, int len) {
int sum = 0, count = 0;
for (int i = 0; i < len; i++) {
if (arr[i] > 0) {
sum += arr[i];
count++;
}
}
return (double)sum / count;
}
int main() {
int arr[100], len = 0;
while (1) {
int num;
scanf("%d", &num);
if (num == 0) {
arr[len++] = num;
break;
}
arr[len++] = num;
}
printf("%.2f\n", fun(arr, len - 1));
return 0;
}
```
这段代码定义了一个函数 `fun`,它接受一个整型数组和数组长度作为参数,计算数组元素中值为正数的平均值。这个函数遍历整个数组,如果元素值大于 0,就累加到 `sum` 变量中,并增加 `count` 变量的值。最后,函数返回 `sum` 除以 `count` 的值,即正数的平均值。
在 `main` 函数中,我们先定义了一个长度为 100 的整型数组 `arr` 和一个变量 `len`,表示数组中元素的个数。然后,我们通过循环从键盘读取输入的整数,并将其存入数组中,直到读取到 0 为止。最后,我们调用 `fun` 函数计算正数的平均值,并将结果输出到屏幕上。
希望能够帮到你,如果还有什么问题,可以继续问我。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)