- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#define MAX 100
void calc(float**, int, float*, float*);
int main( int argc, char* argv[] )
{
float *array[MAX];
float *MEAN;
float *SD;
int array_size, i;
array_size = argc;
for( i = 0; i < argc ; ++i )
{
*array = (float *) malloc( argc*(sizeof(float)));
*array[i] = atof(argv[i]);
}
calc(array, array_size, MEAN, SD);
return 0;
}
void calc(float* arr[] , int arr_size, float* mean, float* stdev)
{
int sum, i;
for ( i = 0; i < arr_size ; ++i )
{
sum += *arr[i];
}
*mean = sum / arr_size;
printf("%.2f", *mean);
for ( i = 0; i < arr_size ; ++i )
{
sum += pow((*arr[i]-*mean), 2);
}
*stdev = sqrt((sum/arr_size));
printf("%.2f", *stdev);
}
该代码应该确定多个用户输入的 float 的平均值和标准差。我在尝试编译它时不断遇到段错误。我尝试释放 malloc,但它给代码带来了更多问题,所以我就将其保留原样 - 尽管这可能是内存分配的问题。
谢谢
最佳答案
有几个问题:
float *array[MAX];
是指向 float 数组的指针。你应该使用 float 组或指针。既然你正在使用malloc
,你可以使用这样的指针:float *array;
MEAN
和 SD
定义为指针,则必须使用对它们进行malloc
。最好将它们声明为仅 float 并使用他们的地址(通过 &MEAN
和 &SD
)。sum
变量应该是一个float
,并且您应该初始化它到0
。您还应该在计算 stdev
之前将其设置为 0
。argv[0]
包含您的程序的名称,因此你应该忽略它。malloc
分配的任何内容调用 free
当你完成它时。代码的修改版本:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
void calc(float*, int, float*, float*);
int main( int argc, char* argv[] ) {
float *array;
float MEAN;
float SD;
int array_size, i;
array_size = argc-1;
array = (float *) malloc( array_size*sizeof(float));
for( i = 0; i < array_size ; ++i ) {
array[i] = atof(argv[i+1]);
}
calc(array, array_size, &MEAN, &SD);
free (array);
return 0;
}
void calc(float* arr , int arr_size, float* mean, float* stdev) {
float sum=0;
int i;
for ( i = 0; i < arr_size ; ++i ) {
sum += arr[i];
}
*mean = sum / arr_size;
printf("%.2f ", *mean);
sum=0;
for ( i = 0; i < arr_size ; ++i ) {
sum += pow((arr[i]-*mean), 2);
}
*stdev = sqrt((sum/arr_size));
printf("%.2f", *stdev);
}
关于stddev/mean 的 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19575647/
我需要知道与一组数字相比,一个数字是否超出均值的 1 个标准差,等等。 最佳答案 虽然平方和算法在大多数情况下运行良好,但如果您处理非常大的数字,它可能会造成很大的麻烦。你基本上可能会以负方差结束..
我正在尝试优化以下查询: SELECT idnum AS ID, (SELECT stddev(close) from hist.eurusd1 where idnum betw
我们写了一个监控系统。这个监视器是由代理组成的。每个代理在不同的服务器上运行,并监控特定的服务器资源(RAM、CPU、SQL Server 状态、复制状态、可用磁盘空间、Internet 访问、特定业
我试图用下一个方法计算标准差: private static double? StdDev(IReadOnlyCollection items) { if(items == null) {
#include #include #include #include #define MAX 100 void calc(float**, int, float*, float*); int mai
我有一系列从教程站点读取的数据。我设法在该数据中绘制了 TV 列的分布,但是我还想在第二个 x 轴上用 StdDev 刻度覆盖一条正态分布曲线(这样我就可以比较这两条曲线)。我正在努力弄清楚如何去做.
import scipy timeseries = [53.0, 28.0, 20.0, 113.0, 68.0, 18.0, 9.0, 72.0, 37.0, 29.0, 16.0, 70.0, 4
我正在尝试使用 Laravel 获取数据子集上的 AVG() 和 STDDEV_SAMP()。 所以我尝试过 //Data from which I want to calculate the AVG
我目前正在致力于将一些 python 代码迁移到 scala。我使用 Breeze lib 作为 numpy 的替代品。 一切看起来都很好,但我在标准差实现的输出中遇到了不同的行为: Python:
我正在使用逆累积分布函数 (CDF) 作为数值积分算法的一部分进行拒绝抽样。 我发现了两种可能的实现方式: 在 C 和 Java 中(以及其他语言,但不是 C#,所以我需要翻译): http://ho
示例:计算点击率 (CTR) CAST(SUM(num_clicks) as DOUBLE) / CAST(SUM(num_impression) as DOUBLE) as CTR 如何计算点击率的
我有一张 table | id | user | bottle | count | | 1 | foo | beer | 2 | | 2 | bar | beer |
我正在使用 Python 2.7 和 scikit-learn 进行一些机器学习。我正在使用网格搜索来确定我的数据集和随机森林分类器的最佳超参数。我使用留一法交叉验证和 ROC 曲线下的面积作为评估每
我是 SVM 的新手,我正在尝试使用 Python 接口(interface)来 libsvm对包含均值和标准差的样本进行分类。但是,我得到了荒谬的结果。 此任务是否不适合 SVM,或者我使用 lib
我的 Postgres查询计算统计aggregate来自一堆传感器读数: SELECT to_char(ipstimestamp, 'YYYYMMDDHH24') As row_name, to_ch
由于 statsd 计算每个刷新间隔(默认 10 秒)的统计信息,因此 Graphite 在查看较长时间窗口时简单地对这些进行平均似乎是不正确的。例如,statsd 在 6 个刷新间隔内发送第 90
我在计算标准偏差 (stddev) 时得到 NaN。这是一个非常简单的用例,如下所述: val df = Seq(("1",19603176695L),("2", 26438904194L),("3
为了进行 C++/Rcpp 编程,我尝试实现一个(示例)标准差函数: #include #include #include #include // [[Rcpp::export]] doubl
似乎 numpy 中的 corrcoef 在常量列表传递给 corrcoef() 时抛出一个 RuntimeWarning函数,例如下面的代码抛出警告: import numpy as np X =
我在设置深度模型时收到此警告消息。 警告消息 WARNING:tensorflow:The default stddev value of initializer will change from "
我是一名优秀的程序员,十分优秀!