用c语言编写请编一个函数double_ Pat( hit_n,doableppl),它的功能 是:求出数组p中几个数的整数部分的和,并返回此值。例如: 若输入4和11.91,23.87,35.79,40.83,则输出109.0,整数部分的 值应小于10的16次方
时间: 2023-11-22 11:52:53 浏览: 33
以下是用 C 语言编写的 double_Pat 函数:
```c
#include <stdio.h>
#include <math.h>
double double_Pat(int hit_n, double *doableppl) {
double sum = 0.0;
for (int i = 0; i < hit_n; i++) {
sum += floor(doableppl[i]);
}
return sum;
}
```
其中,hit_n 是数组的长度,doableppl 是一个指向数组的指针。函数中使用了 math.h 头文件中的 floor 函数,用于将浮点数向下取整。函数首先初始化 sum 为 0,然后遍历数组,对每个元素执行 floor 函数,将其整数部分加入 sum 中。最后返回 sum 即可。
可以在主函数中调用 double_Pat 函数进行测试:
```c
int main() {
double arr[] = {11.91, 23.87, 35.79, 40.83};
int n = sizeof(arr) / sizeof(double);
double result = double_Pat(n, arr);
printf("%.1f", result);
return 0;
}
```
输出结果为 109.0。
相关问题
用C语言编写函数:double variance(double data[], int n); 求输入的数组中n个元素的方差
以下是用C语言编写的函数 double variance(double data[], int n),用于计算输入的数组中n个元素的方差:
```c
#include <stdio.h>
#include <math.h>
double variance(double data[], int n) {
double sum = 0.0, mean, variance = 0.0;
int i;
// 计算平均值
for (i = 0; i < n; i++) {
sum += data[i];
}
mean = sum / n;
// 计算方差
for (i = 0; i < n; i++) {
variance += pow(data[i] - mean, 2);
}
variance /= n;
return variance;
}
int main() {
double data[] = {1.2, 2.3, 3.4, 4.5, 5.6};
int n = 5;
printf("方差为:%lf\n", variance(data, n));
return 0;
}
```
解释:
1. 首先,用一个循环计算出数组中所有元素的总和sum。
2. 然后,用sum除以n,得出数组的平均值mean。
3. 接着,再用一个循环计算出每个元素与平均值之差的平方,并将它们加起来得到方差variance。
4. 最后,除以n,得到方差的最终值,并将其返回。
以上代码可以在任何 C 语言编译器中运行。
用C语言编写下列程序定义了n×n的二维数组,并在主函数中赋值。请编写函数fun, 函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数
好的,下面是用C语言编写的程序,实现了你的要求:
```c
#include <stdio.h>
double fun(int arr[][n], int n) {
int sum = 0;
int count = 0;
// 计算上下左右四个边的元素之和
for (int i = 0; i < n; i++) {
sum += arr[0][i]; // 上边
sum += arr[n - 1][i]; // 下边
sum += arr[i][0]; // 左边
sum += arr[i][n - 1]; // 右边
count += 4;
}
// 排除重复计算的四个角的元素
sum -= (arr[0][0] + arr[0][n - 1] + arr[n - 1][0] + arr[n - 1][n - 1]);
count -= 4;
// 返回平均值
return (double)sum / count;
}
int main() {
int n;
printf("请输入数组的大小n:");
scanf("%d", &n);
int arr[n][n];
printf("请输入%d×%d的二维数组元素:\n", n, n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
double avg = fun(arr, n);
printf("数组周边元素的平均值为:%.2f\n", avg);
return 0;
}
```
这段代码中,首先在 `fun` 函数中计算了数组周边元素的和,并将出现的元素个数累加到 `count` 变量中。然后,通过减去四个角的元素之和,排除了重复计算的部分。最后,将和除以元素个数得到平均值,并作为函数值返回给主函数。
在主函数中,首先读取了数组的大小 `n`,然后定义了一个 `n×n` 的二维数组 `arr` 并进行赋值。接下来,调用 `fun` 函数计算周边元素的平均值,并将结果打印输出。