c语言题目,输入n个数到一维数组a中,求均方差。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言题目,输入n个数到一维数组a中,求均方差。相关的知识,希望对你有一定的参考价值。

要求编写四个函数,input()输入数组值,aver()求数组平均值,sttdev()求均方差,主函数。
#include<stdio.h>
#include<math.h>

void input(int a[],int n)
int i;
n=100;
printf("input numbers:\n");
for(i=0;i<=n-1;i++)
scanf("%d\n",&a[i]);


float average(float a[],int n)
int i;
float avg=0;
for (i=0;i<n;i++)
avg+=a[i];
avg=avg/(i+1);
return avg;


float stddev(float a[],int n)

float sum,M,D;int i;
M=average(a[],n);
for(i=0;i<n;i++)
sum=sum+(a[i]-M)*(a[i]-M);
D=sqrt(sum/(i+1));
return(D);



main()

int a[i],n,i;
input(a[i],n);
printf("standard deviation is:%f\n",stddev(a[i],n));



自己写的错误一大堆没信心改了,麻烦大侠学霸帮忙……

#include<stdio.h>
#include<math.h>

/* 要把n传递出去,请用引用或者指针 */
void input(int a[],int &n)
 
int i;
n=100;
printf("input numbers:\\n");
for(i=0;i<=n-1;i++)
scanf("%d\\n",&a[i]);


/* 数组定义时是int,这边要保持一致 */
float average(int a[],int n)
 
int i;
float avg=0;
for (i=0;i<n;i++)
avg+=a[i];
avg=avg/(i+1);
return avg;


/* 数组定义时是int,这边要保持一致 */
float stddev(int a[],int n)


/* sum需要初始化,否则结果会出错 */
float sum = 0.0;
float M,D;
int i;
/* 传递参数时直接用a,而不是a[] */
M=average(a,n);
for(i=0;i<n;i++)
sum=sum+(a[i]-M)*(a[i]-M);
D=sqrt(sum/(i+1));
return(D);


void main()

/* 数组的定义只能用常量来指定大小,要实现动态的,使用vector或者指针 */
int n;
int a[100];
/* 传递参数时直接用a,而不是a[] */
input(a,n);
printf("standard deviation is:%f\\n",stddev(a,n));

小哥你的错误可真不少呀,基础知识不够牢固

参考技术A void input(int *a)

    printf("请输入整数,并按回车结束");
     while(ch!='\\n')
        scanf("%d",a);

float average(int a[100],int n)
   int i;
    int sum=0;
    for (i=0;i<n;i++)
      sum+=a[i];
  
       return (float)sum/n;
  
  
  float stddev(int a[],int n)

        float sum,M,D;int i;
M=average(a,n);
for(i=0;i<n;i++)
sum=sum+(a[i]-M)*(a[i]-M);
D=sqrt(sum/(i+1));
return(D);

int main()

 int a[i],n,i;
 input(a,n);
 printf("standard deviation is:%f\\n",stddev(a,n));

参考技术B #include<stdio.h>
#include<math.h>
#define N 100
int main()

float a[N],sum=0.0,aversum=0.0,end,average;
int i,num;
printf("请输出你需要输入的个数:");
scanf("%d",&num);
for(i=0;i<num;i++)

scanf("%f",&a[i]);
sum += a[i];

printf("sum==%f",sum);
average = sum/num;
printf("average==%f",average);
for(i=0;i<num;i++)

aversum +=(a[i]-average)*(a[i]-average);

printf("aversum==%f",aversum);
end =sqrt(aversum/num);
printf("%f",end);


你这个错误实在太多了。。我就不一个一个的说了。。
有问题回一个。。本回答被提问者采纳

C语言【函数 数组 指针】利用指针求一维数组的数据元素之和

题目描述

输入一组数据,存到数组中,求数组之和并输出结果

要求:设计一个输入数据的函数 void inputarray(int * a,int *n) //a是指向数组的指针,n用于返回实际输入数据个数

设计一个求和的函数 void sumarray(int *a,int n,int *r) //a是指向数组的指针,r用户返回结果

输入

一行数据以-1 最为结束标志

输出

和的结果

样例输入

1 2 3 4 5 6 -1
样例输出

21
提示

带填充标签的C/C++原程序

#include"stdio.h"
void inputarray(int * a,int *n);
void sumarray(int *a,int n,int *r);

main()

int b[200];
@@1

@@1


@@2

@@2

void sumarray(int *a,int n,int *r)

int *p,s=0;
for(p=a; @#1 ;p++)
s=s+ @#2
@#3

参考技术A #include<stdio.h>
int main()

    int array[10];
    int i, *p;
    for(p=array, i=0; i<10; i++)
        scanf("%d", p+i);
    for(p=array, i=0; i<10; i++)
        printf("%d ", *(p+i));
    return 0;

追问

用带填充的原程序填空

本回答被提问者和网友采纳

以上是关于c语言题目,输入n个数到一维数组a中,求均方差。的主要内容,如果未能解决你的问题,请参考以下文章

c语言 求一组数的平均值及其均方差 写出程序,谢谢!

C语言 一维数组 练习

C语言 一维数组 练习

C语言 一维数组 练习

C语言定义一个求数组n个元素的和的函数

c++用啥表示二维数组的一个数