| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2721 人关注过本帖
标题:求标准差,那里错了.
只看楼主 加入收藏
马亚杰
Rank: 2
来 自:甘肃.天水
等 级:论坛游民
帖 子:38
专家分:43
注 册:2012-3-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
求标准差,那里错了.
#define N 6
#include<stdio.h>
#include<math.h>
void main()
{
    int i;
    float a[6],b,c,d,sum,e;
    printf("shuru:\n");
    for(i=0;i<N;i++)
        scanf("%f",a);
    printf("shuru仪器误差:\n");
    scanf("%f",&e);
    for(i=0;i<N;i++)
        sum=sum+a[i];
    b=sum/N;
    printf("%d",b);
    for(i=0;i<N;i++)
        d=0;
    d=d+(a[i]-b)*(a[i]-b);
        d=d/(N-1);
    c=sqrt(d);
    printf("%f",c);

}
搜索更多相关主题的帖子: include 标准差 
2012-03-26 23:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你仔细检查一下各个输入输出函数的参数和格式字符串。

授人以渔,不授人以鱼。
2012-03-27 00:02
tpz277
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2012-3-27
收藏
得分:5 
第10行,按照你的意思,应该写成: scanf("%f",a+i);
第11行和第12行,你定义了一个变量e, 但整段函数除了对e输入了一个值以外,没有对e有任何操作,所以不明白你定义变量e的目的。
第19行开始的if语句,d=0可以在开始定义变量时就赋值,或者用{}将第20行和第21行括起来。

本人刚开始学习C,如果有错误,还请指正,也好大家共同进步。
2012-03-27 01:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
以下描红的仅是简单的低级错误,先看看书,把这些整好了、弄正确了,再接着做后面的东西。

void main()
{
    int i;
    float a[6],b,c,d,sum,e;
    printf("shuru:\n");
    for(i=0;i<N;i++)
        scanf("%f",a);
    printf("shuru仪器误差:\n");
    scanf("%f",&e);
    for(i=0;i<N;i++)
        sum=sum+a[i];
    b=sum/N;
    printf("%d",b);
    for(i=0;i<N;i++)
        d=0;
    d=d+(a[i]-b)*(a[i]-b);
        d=d/(N-1);
    c=sqrt(d);
    printf("%f",c);

}

另外,你这个程序的代码写法相当不好,如果是从什么书上学来的,最好换一本,马上改掉这种风格,不然麻烦大大的。

btw: 3楼也要认真思考一下。

[ 本帖最后由 TonyDeng 于 2012-3-27 02:36 编辑 ]

授人以渔,不授人以鱼。
2012-03-27 02:34
Eilliot
Rank: 6Rank: 6
等 级:侠之大者
帖 子:41
专家分:418
注 册:2012-3-26
收藏
得分:0 
书是最好的老师啊
2012-03-27 07:30
星辰雁
Rank: 4
等 级:业余侠客
威 望:1
帖 子:93
专家分:275
注 册:2011-9-10
收藏
得分:5 
楼上各位已说的差不多了,最后一个for循环的问题我详细说下,for循环后面如果不跟{}就表示只循环执行后面的一句。如果你循环体内容很多,一定要加上{}。

不要认为CPU运算速度快就 把所有的问题都推给它去做,程序员应该将代码优化再优化,我们自己能做的决不要让CPU做 ,因为CPU是为用户服务的,不是为我们程序员服务的!
2012-03-27 11:01
tpz277
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2012-3-27
收藏
得分:0 
谢谢版主tony的提醒。

这种错误只要细心,都可以尽力避免的(说到这里,要自责一下了)。
2012-03-27 14:52
spaceyang
Rank: 2
等 级:论坛游民
帖 子:14
专家分:46
注 册:2012-3-21
收藏
得分:5 
/***************标准差*************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define  N 6
void main()
{
      int i, a[6], sum;      //sum表示6个数的和;b表示6个数的平均数;
       sum = 0;
    double b, d, c;
    d = 0;
    for (i = 0; i < N; i ++)   //表示挨个输入6个数;
    scanf("%d", &a);
    for (i = 0; i < N; i ++)
    printf("%d", a[i]);         //打印
    for (i = 0; i < N; i ++)
        {
    sum = sum + a[i];       //求和
    }
    b = sum / N;            //求平均值     
        printf("平均值 = %f", b);
    for (i = 0; i < N; i ++)
        {
    d = d + (a[i] - b)*(a[i] - b); //求方差;
         }
       c = sqrt (d);
        printf("%f", c);
}

我也不知道sqrt用错了吗。。。
2012-03-27 16:24
快速回复:求标准差,那里错了.
数据加载中...
 
   



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

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