使用指针,求十个数的均方差的完整代码
时间: 2024-02-06 13:09:05 浏览: 68
下面是使用指针求十个数的均方差的完整代码:
```
#include <stdio.h>
#include <math.h>
int main()
{
int i;
double sum = 0, mean, variance, std_dev;
double arr[10];
printf("Enter 10 numbers:\n");
for(i = 0; i < 10; i++)
{
scanf("%lf", &arr[i]);
sum += arr[i];
}
mean = sum / 10;
sum = 0;
for(i = 0; i < 10; i++)
{
sum += pow((arr[i] - mean), 2);
}
variance = sum / 10;
std_dev = sqrt(variance);
printf("Mean = %.2lf\n", mean);
printf("Variance = %.2lf\n", variance);
printf("Standard deviation = %.2lf\n", std_dev);
return 0;
}
```
其中,数组 `arr` 存储了十个数,指针在此程序中并没有用到。如果一定要使用指针,可以将 `arr` 数组的地址传递给函数,然后在函数中使用指针来访问数组元素。下面是一个使用指针的示例:
```
#include <stdio.h>
#include <math.h>
void calculate_statistics(double *arr, int n, double *mean, double *variance, double *std_dev);
int main()
{
int i;
double mean, variance, std_dev;
double arr[10];
printf("Enter 10 numbers:\n");
for(i = 0; i < 10; i++)
{
scanf("%lf", &arr[i]);
}
calculate_statistics(arr, 10, &mean, &variance, &std_dev);
printf("Mean = %.2lf\n", mean);
printf("Variance = %.2lf\n", variance);
printf("Standard deviation = %.2lf\n", std_dev);
return 0;
}
void calculate_statistics(double *arr, int n, double *mean, double *variance, double *std_dev)
{
int i;
double sum = 0;
for(i = 0; i < n; i++)
{
sum += arr[i];
}
*mean = sum / n;
sum = 0;
for(i = 0; i < n; i++)
{
sum += pow((arr[i] - *mean), 2);
}
*variance = sum / n;
*std_dev = sqrt(*variance);
}
```
在这个示例中,`calculate_statistics` 函数接收一个指向数组的指针 `arr`,以及三个指向 `double` 类型的变量的指针:`mean`、`variance` 和 `std_dev`。函数通过指针修改这些变量的值,最终返回结果。在 `main` 函数中,调用 `calculate_statistics` 函数来计算十个数的均方差,并将结果打印出来。
阅读全文