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<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));
小哥你的错误可真不少呀,基础知识不够牢固
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));
#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
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中,求均方差。的主要内容,如果未能解决你的问题,请参考以下文章