| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 919 人关注过本帖
标题:请高手帮忙,用C编写一个简单的统计数据的程序
只看楼主 加入收藏
kidd218
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-10-28
收藏
 问题点数:0 回复次数:9 
请高手帮忙,用C编写一个简单的统计数据的程序
求高手写一个C程序,要求,
从键盘输入任意一组数据(都是int数字)进数组,不超过50个,
输入完后

程序自动计算并显示以下数据:
1.Number of data items 数字个数
2.Largest data item 最大值
3.Smallest data item 最小值
4.average 平均值
5.Variance 方差
6.Standard Deviation 标准差

期中方差公式为:1/n[(X1-x0)²+(X2-x0)²+……+(Xn-0)²],其中X0是X1,X2,…,Xn的平均数,即X0是 average

标准差公式为 方差的算术平方根

请高手指教!谢谢
搜索更多相关主题的帖子: 统计数据 编写 
2008-11-24 09:26
kidd218
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-10-28
收藏
得分:0 
2008-11-24 12:12
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
高手不算,帮你谢谢看..
然后数字的话,就写十个...
等等

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-24 12:37
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
回楼主的..
我现在要吃饭,等下还要写作业,剩下的几个我等下些给你

我顺便问问,方差我学了有忘了,,我想问问
1/n[(X1-x0)²+(X2-x0)²+……+(Xn-X0)²]
里的n是什么??

然后标准差是什么?我没学..

解释一下,晚点给你

程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
/*判断错误函数*/
void puterror(int i){
  int a;
  for(a=1;a<=i;a++)
    printf(" ");
  printf("^\n");
}
/*求最大函数*/
int maxx(int a,int n[]){
  int i,b;
  b=0;
  for(i=1;i<=a;i++)
    if(n[b]<n[i])
      b=i;
  return n[b];
}
/*求最小函数*/
int minn(int a,int n[]){
  int i,b;
  b=0;
  for(i=1;i<=a;i++)
    if(n[b]>n[i])
      b=i;
  return n[b];
}
/*求总和函数*/
long sum(int a,int n[]){
  int i;
  long s=0;
  for(i=0;i<=a;i++)
    s+=n[i];
  return s;
}
/*求平均数函数*/
float ave(int a,long s){
  return (float)s/(a+1);
}
/*主函数*/
int main(){
  char num[100],i,a;
  int n[50]={0};
  gets(num);
  i=0;
  a=0;
  while(num[i]!='\0'){
    if(isdigit(num[i]))
      n[a]=n[a]*10+(num[i]-48);
    else if(isspace(num[i]))
      a++;
    else{
      puterror(i);
      printf("Error : This is not number.\n");
      break;
    }
    i++;
  }
  printf("\n");
  if(a==0)             /*判断如果是一个就说只有一数字,不然就说有多少个数字*/
    printf("Here only one number.\n");
  else
    printf("There are %d numbers.\n",a+1);
  printf("The Max number is %d.\n",maxx(a,n));
  printf("The Min number is %d.\n",minn(a,n));
  printf("The Sume is %d.\n",sum(a,n));
  printf("The average is %.2f.\n",ave(a,sum(a,n)));
  printf("");
  getch();
}

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-24 13:01
kidd218
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-10-28
收藏
得分:0 
谢谢楼上热心的兄弟,
关于方差的公式,1/n[(X1-x0)&sup2;+(X2-x0)&sup2;+……+(Xn-X0)&sup2;]
其中n就是数字的个数,比如10个数字是1,2,3.。。。。10,那么n就是10,Xn也是10

标准差就是方差的算数平方根
2008-11-24 14:24
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
哦...
再晚一点给你..
现在写作业.

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-24 17:12
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
方差就是:
1/n*[(X1-x0)&sup2;+(X2-x0)&sup2;+……+(Xn-X0)&sup2;]
吧??

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-24 17:15
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <math.h>
/*判断错误函数*/
void puterror(int i){
  int a;
  for(a=1;a<=i;a++)
    printf(" ");
  printf("^\n");
}
/*求最大函数*/
int maxx(int a,int n[]){
  int i,b;
  b=0;
  for(i=1;i<=a;i++)
    if(n[b]<n[i])
      b=i;
  return n[b];
}
/*求最小函数*/
int minn(int a,int n[]){
  int i,b;
  b=0;
  for(i=1;i<=a;i++)
    if(n[b]>n[i])
      b=i;
  return n[b];
}
/*求总和函数*/
long sum(int a,int n[]){
  int i;
  long s=0;
  for(i=0;i<=a;i++)
    s+=n[i];
  return s;
}
/*求平均数函数*/
float ave(int a,long s){
  return (float)s/(a+1);
}
/*求方差函数*/
float var(int a,int n[],float ave){
  float s=0;
  int i;
  for(i=0;i<=a;i++)
    s+=pow(n[i]-ave,2);
  return s/(a+1);
}
/*标准值*/
float sta(int var){
  return sqrt(var);
}
/*主函数*/
int main(){
  char num[100],i,a;
  int n[50]={0};
  gets(num);
  i=0;
  a=0;
  while(num[i]!='\0'){
    if(isdigit(num[i]))
      n[a]=n[a]*10+(num[i]-48);
    else if(isspace(num[i]))
      a++;
    else{
      puterror(i);
      printf("Error : This is not number.\n");
      break;
    }
    i++;
  }
  printf("\n");
  if(a==0)             /*判断如果是一个就说只有一数字,不然就说有多少个数字*/
    printf("Here only one number.\n");
  else
    printf("There are %d numbers.\n",a+1);
  printf("The Max number is %d.\n",maxx(a,n));
  printf("The Min number is %d.\n",minn(a,n));
  printf("The Sume is %d.\n",sum(a,n));
  printf("The average is %.2f.\n",ave(a,sum(a,n)));
  printf("The Variance is %.2f.\n",var(a,n,ave(a,sum(a,n))));
  printf("The Standard Deviation is %.2f.\n",sta(var(a,n,ave(a,sum(a,n)))));
  getch();
}


程序就是这个了..
你是拿来做作业用???
跟我差不多..
如果对程序还有什么问题的话,回复就是的.

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-24 17:24
tanbiwen1982
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-10-25
收藏
得分:0 
我写了个,没你的要求多,可供参考
#include <stdio.h>
void main()
{
    int a[3][4],i,j,k,s,max,p,o,min,u=0,t=0,f=0;
  printf ("输入12个数:\n");
  for (i=0;i<3;i++)
  for (j=0;j<4;j++)
    scanf("%d",&a[i][j]);
  printf ("\n");
  printf ("输出数组:\n");
 for (i=0;i<3;i++)
  for (j=0;j<4;j++)
  {
    printf ("%-5d",a[i][j]);
    if (j==3)
      printf ("\n");
  }
  printf ("\n");
  max=a[0][0];
  for (i=0;i<3;i++)
  for (j=0;j<4;j++)
    if (a[i][j]>=max)
    {
       max=a[i][j];
       k=i+1;
       s=j+1;
    }
  printf ("第%d行第%d列为最大是%d\n\n",k,s,max);
  min=a[0][0];
  for (i=0;i<3;i++)
  for (j=0;j<4;j++)
    if (a[i][j]<=min)
    {
       min=a[i][j];
       o=i+1;
       p=j+1;
    }
  printf ("第%d行第%d列为最小是%d\n\n",o,p,min);
  for (i=0;i<3;i++)
  for (j=0;j<4;j++)
    {
    if (a[i][j]%2==0)
    {u++;
    printf("偶数:%-5d",a[i][j]);}
     else
         printf("奇数:%-5d",a[i][j]);
    if (j==3)
      printf ("\n");}
    printf ("\n");
    printf("数组中偶数有%d个\n",u);
    printf("数组中奇数有%d个\n",12-u);
    printf ("\n");
  for (i=0;i<3;i++)
  for (j=0;j<4;j++)
    {t=a[i][j];
     f=t+f;}
  printf("数组和是%-5d\n",f);
  printf ("\n");
 }
2008-11-24 20:53
kidd218
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-10-28
收藏
得分:0 
非常感谢zqy110007兄弟的帮助,你的程序非常完美!就是小弟在运行之后发现一个小问题,即你的标准差函数中的float sta(int var)应该改成float sta(float var),否则输出的标准差值就只有整数部分了,另外也谢谢tanbiwen1982兄弟的程序,小弟初学,以后还需要高手多多指教。
2008-11-25 08:36
快速回复:请高手帮忙,用C编写一个简单的统计数据的程序
数据加载中...
 
   



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

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