用c语言编写:利用全局变量在函数间传递值,编写函数返回n以内(不包括n、0和负数)所有数的倒数之和、所有数的平均值。并编写主函数输入n,调用该函数,并输出倒数和、平均值(均保留小数点后2位)。
时间: 2024-02-20 20:57:43 浏览: 116
好的,下面是代码实现:
```c
#include <stdio.h>
// 定义全局变量
int n;
// 定义函数,计算倒数之和和平均值
void calc(double *sum, double *avg) {
double s = 0;
int cnt = 0;
for (int i = 1; i < n; i++) {
if (i <= 0) continue;
s += 1.0 / i;
cnt++;
}
*sum = s;
*avg = s / cnt;
}
int main() {
double sum, avg;
printf("请输入n的值:");
scanf("%d", &n);
calc(&sum, &avg);
printf("倒数之和:%.2lf\n平均值:%.2lf\n", sum, avg);
return 0;
}
```
在这个代码中,我们定义了一个全局变量 `n`,用来存储用户输入的值。然后我们定义了一个 `calc` 函数,用来计算倒数之和和平均值,并使用指针返回这两个值。最后在 `main` 函数中,我们调用 `calc` 函数,将计算得到的倒数之和和平均值输出到屏幕上。
需要注意的是,在计算倒数之和时,我们使用了 `if (i <= 0) continue;` 这一句代码来跳过了负数和0的情况。另外,在计算平均值时,我们需要注意不能除以0的情况,因此在循环中使用了一个 `cnt` 变量来统计实际计算的数量,并在计算平均值时使用了这个变量。
阅读全文