| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 548 人关注过本帖
标题:这种错误不是第一次,可会死就是不会改!!求助,谢谢!
只看楼主 加入收藏
jj369258
Rank: 4
等 级:业余侠客
帖 子:116
专家分:226
注 册:2010-12-2
结帖率:69.57%
收藏
已结贴  问题点数:5 回复次数:2 
这种错误不是第一次,可会死就是不会改!!求助,谢谢!
某次考试结束后,需要分析考试成绩的一些情况,例如,需要分析学生成绩之间相差是否很大,也就是分数偏离平均值的程度如何,偏离得越厉害表示两极分化越严重,此时可利用统计学中“标准差”来进行计算。对于离散的随机变量,方差的计算公式为:



Input
第一个正整数给定测试用例的个数k。
对于每个测试用例有2行,第一行有一个正整数表示实验数据的个数n(0<n<=1000)。其后的一行中有n个学生的成绩x(0<=x<=100),成绩可能带有一位小数。

Output
输出按公式计算得到的标准差,结果保留2位小数。

Sample Input
1
10
90 85 73.5 64 90.5 76 82 97 61 83
Sample Output
11.61


代码=======

#include<malloc.h>
#include<math.h>
#include<iostream>
#include<iomanip>
using namespace std;

int *Make1DArray(int line)
{
    double *p=NULL;
    p=(double *)malloc(sizeof(double *)*line);
    if(p==NULL)
        //return p;
    return 0;
}

void Diliver1DArray(double *p,int line)
{
    int i;
    for(i=0;i<line;i++)
    {
        free(p+i);
    }
    p=NULL;
}
int main()
{
    int i,j,line;
    double *p,sum=0,everage,all=0;
    double dx;//dx表示方差
    cin>>line;
    p=Make1DArray(line);//就是这句有问题
    for(i=0;i<line;i++)
    {
        cin>>p[i];
    sum=sum+p[i];
    }
    everage=sum/(line*1.0);
    for(j=0;j<line;j++)
    {
        all=all+(everage-p[j])*(everage-p[j]);
    }
    dx=sqrt(all/(line*1.0));
    cout<<setprecision(2)<<dx;
    Diliver1DArray(p,line);
    return 0;
}
   


   

搜索更多相关主题的帖子: 测试 分析 考试成绩 学生成绩 统计学 
2011-11-08 18:57
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
收藏
得分:5 
int *Make1DArray(int line)
{
    double *p=(double *)malloc(line*sizeof(double));
    if(!p) exit(0);
    return p;
}
2011-11-08 19:46
jj369258
Rank: 4
等 级:业余侠客
帖 子:116
专家分:226
注 册:2010-12-2
收藏
得分:0 
还是有错,而且你的这个函数体也报错,错误更多了!!
2011-11-08 20:19
快速回复:这种错误不是第一次,可会死就是不会改!!求助,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013933 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved