编写函数计算以下公式: 函数接口定义: void fun(float *s, int n); 其中 s 和 n 都是用户传入的参数。函数求公式的运算结果,并将结果通过 s带回。 裁判测试程序样例: #include <stdio.h> void fun(float *s, int n); int main() { int n; float s=0; scanf("%d",&n); fun(&s,n); printf("%f",s); return 0; }c
时间: 2023-06-14 21:04:14 浏览: 228
根据题目要求,我们需要编写一个函数来计算以下公式:
![image.png](attachment:image.png)
函数接口定义如下:
```c
void fun(float *s, int n);
```
其中,`s` 是一个指向浮点数的指针,`n` 表示公式中的参数 `n`。函数需要计算公式的结果,并将结果通过 `s` 带回。
实现代码如下:
```c
#include <math.h>
void fun(float *s, int n) {
float sum = 0;
for (int i = 1; i <= n; i++) {
sum += 1.0 / i;
}
*s = sqrt(sum * 6);
}
```
首先我们定义一个变量 `sum` 来保存公式中的求和部分的值,然后使用一个循环来计算求和部分的值。最后将求和部分乘以 `6` 并开根号,即可得到公式的结果。最后将结果通过 `s` 带回即可。
相关问题
函数 void fun(float *sn,int n)的功能是:根据以下公式计算 S,计算结果通过形参指 针 sn 传回;n 通过实参传入,n 的值大于等于 0。请填空,并编写出主函数,使之成为完整 程序,上机调试运行。 2 1 1 7 1 5 1 3 1 1 n S void fun(float *sn,int n) { float s=0.0,w,f=-1.0; int i=0; for (i=0;i<=n;i++); { f= * f; w=f/(2*i+1); s+=w; } =s;
完整程序如下:
```c++
#include <iostream>
using namespace std;
void fun(float *sn, int n) {
float s = 0.0, w, f = -1.0;
int i;
for (i = 0; i <= n; i++) {
f = -f;
w = f / (2 * i + 1);
s += w;
}
*sn = s;
}
int main() {
float sn;
int n;
cout << "请输入n的值:" << endl;
cin >> n;
fun(&sn, n);
cout << "S的值为:" << sn << endl;
return 0;
}
```
该程序通过调用函数 `fun`,计算出公式中的 S 值,并将结果通过指针 `sn` 传回主函数中,最后输出 S 的值。注意在循环中,需要将变量 `f` 取反,以实现加减号交替的效果。
函数 void fun(float *sn,int n)的功能是:根据以下公式计算 S,计算结果通过形 参指针 sn 传回;n 通过实参传入,n 的值大于等于 0。请填空,编写出主函数,使之成为完整 程序,上机调试运行。 2 1 1 7 1 5 1 3 1 1 n S void fun(float *sn,int n) { float s=0.0,w,f=-1.0; int i=0; for (i=0;i<=n;i++); { f= * f; w=f/(2*i+1); s+=w; } =s; }
填空部分为:*f=-1.0; 和 *sn=s;。下面是完整程序:
```
#include <stdio.h>
void fun(float *sn,int n) {
float s=0.0,w;
float f=-1.0;
int i=0;
for (i=0; i<=n; i++) {
f = -1 * f;
w = f / (2 * i + 1);
s += w;
}
*sn = s;
}
int main() {
float s;
int n;
printf("n=");
scanf("%d",&n);
fun(&s,n);
printf("S=%f\n",s);
return 0;
}
```
该程序实现了一个计算数学级数的函数fun,可以根据公式计算级数S的值,并将结果通过指针sn返回给调用者。主函数中,用户输入级数的项数n,然后调用函数fun计算级数的和,并将结果打印输出。
阅读全文