A. c語言用函數算數組的平均數和方差.如何編寫
類型不匹配,方差和平均數都是float型,你兩個函數的返回值都是int類型,且輸出也是用的%d
B. 求助C語言編程題
/*從鍵盤輸入n個數,x1,x2,x3......xn,求這幾個數的均方差s。 */
#include <math.h>
double average(double *p, int n); /*求平均數*/
double sum(double *p, int n);/*求平方和*/
int main()
{
int i, n;
double *p;
printf("please input the number of data you want to input:");
scanf("%d", &n);
p = (int *)malloc(sizeof(int) * n);
for (i = 0; i < n; i++)
{
printf("enter the %d number:", i+1);
scanf("%lf", &p[i]);
}
printf("the result:%lf\n", sqrt(sum(p, n)/n));
free(p);
return 0;
}
double average(double *p, int n) /*求平均數*/
{
int i;
double sum = 0;
for (i = 0; i < n; i++)
{
sum += p[i];
}
return sum/n;
}
double sum(double *p, int n)
{
int i;
double s = 0;
for (i = 0; i < n; i++)
{
s += (p[i] - average(p, n))*(p[i] - average(p, n));
}
return s;
}
C. c語言 求一組數的平均值及其均方差 寫出程序,謝謝!
#include<stdio.h>
#include<math.h>
void main()
{
int i,N=4;
float sum1=0.0,sum2=0.0;
float average,variance;
float a[4];
for(i=0;i<N;i++)
scanf("%f",&a[i]);
for(i=0;i<N;i++)
sum1+=a[i];
average=sum1/N;
printf("均值=%f\n",average);
for(i=0;i<N;i++)
sum2+=(a[i]-average)*(a[i]-average);
variance=sum2/N;
printf("方差=%f\n",variance);
printf("均方差=%f\n",sqrt(variance));
}
你要求幾個數,幫N=4改成N=?以及下面的4改成?就可以了!!!
}
D. C語言糾錯
#include<stdio.h>
#include<math.h>
//voidinput(intn)
//{
//inti,b[100];
//for(i=0;i<n;i++)
//scanf("%f",&b[i]);
//}
voidinput(floatb[],intn){
for(inti=0;i<n;i++){
scanf("%f",&b[i]);
}
}
floataver(floatb[],intn)
{
floatsum=0,M;
for(inti=0;i<n;i++)
sum+=b[i];
returnM=sum/n;
}
voidstddev(floatb[],intn)
{
floatD,sum=0,t,m;
//m=aver(floatb[100],intn);
m=aver(b,n);
for(inti=0;i<n;i++)
{
t=(b[i]-m)*(b[i]-m);
sum+=t;
}
D=sqrt(sum/n);
printf("%f ",D);
}
intmain()
{
floatb[100];
intn;
printf("Pleaseinputn:");
scanf("%d",&n);
printf("Pleaseinputb[]:");
//b[100]=input(intn);
input(b,n);
//D=stddev(floatb[100],intn);
stddev(b,n);
return0;
}
盡可能的不更改你的代碼,就這樣吧...
E. 使用指針 求10個數均方差
代碼如下:
#include<stdio.h>
doubleavg(double*array,intnum)
{inti;doublesum=0;
for(i=0;i<num;++i)
{sum+=*(array+i);}
returnsum/num;
}intmain(){inti;doublearray[10];
printf("請輸入10個值,按回車確版認 ");
for(i=0;i<10;++i){scanf("%lf",array+i);
}
printf("平均值為:權%g ",avg(array,10));}
(5)數的均方差c語言擴展閱讀:
一、方差的性質:
1.設C為常數,則D(C) = 0(常數無波動)。
2.D(CX)=C2D(X) (常數平方提取)。
二、平均差的特點:
平均差越大,表明各標志值與算術平均數的差異程度越大,該算術平均數的代表性專就越小;平均差越小,表明各標志值與算術平均數的差異程度越小,該算術平均數的代表性就越大。
F. 求n個數的均方差,c語言
/*由於時間緣故,沒有增加對輸入數據的檢查*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#define N 10 /*暫定最多計算10個數的均方差,可根據實際修改該數*/
main()
{
float d[N],fsum,avg,temp;
char str[10];
int i,j,num;
printf("\n請輸入不多於%d的數字:輸入『Y』或『y』結束",N);
fsum=0.0;num=0;
for(i=0;i<N;i++)
{
printf("\nNO.%d : ",i+1);
scanf("%s",str);
if(stricmp(str,"y")==0)break;
d[i]=(float)atof(str);
fsum+=d[num++];
}
avg=fsum/num;
fsum=0.0;
for(i=0;i<num;i++)
{
temp=d[i]-avg;
fsum+=temp*temp;
}
fsum=sqrt(fsum/num);
printf("Standard Deviation:%f",fsum);
return 0;
}
G. c語言題目,輸入n個數到一維數組a中,求均方差。
#include<stdio.h>
#include<math.h>
/*要把n傳遞出去,請用引用或者指針*/
voidinput(inta[],int&n)
{
inti;
n=100;
printf("inputnumbers: ");
for(i=0;i<=n-1;i++)
scanf("%d ",&a[i]);
}
/*數組定義時是int,這邊要保持一致*/
floataverage(inta[],intn)
{
inti;
floatavg=0;
for(i=0;i<n;i++)
avg+=a[i];
avg=avg/(i+1);
returnavg;
}
/*數組定義時是int,這邊要保持一致*/
floatstddev(inta[],intn)
{
/*sum需要初始化,否則結果會出錯*/
floatsum=0.0;
floatM,D;
inti;
/*傳遞參數時直接用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);
}
voidmain()
{
/*數組的定義只能用常量來指定大小,要實現動態的,使用vector或者指針*/
intn;
inta[100];
/*傳遞參數時直接用a,而不是a[]*/
input(a,n);
printf("standarddeviationis:%f ",stddev(a,n));
}
小哥你的錯誤可真不少呀,基礎知識不夠牢固
H. C語言編程:計算一組整數的平均值和方差。
我原有一個 y_statistics,給你改成int, 輸出 mean,sigma,rms
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
y_statistics(int *y, int N, float *ymean, float *ysigma, float *yrms)
{
int i;
float ys,yr,dy,ym;
double sum,sum2;
sum = 0.0;
for (i=0;i<N;i++) sum = sum + (float) y[i];
ym = (float) ( sum / (double) (N) );
*ymean = ym;
sum = 0.0;
sum2 = 0.0;
for (i=0;i<N;i++){
dy = y[i] - ym;
sum = sum + dy * dy;
sum2 = sum2 + y[i] * y[i];
};
yr = (float) sqrt( sum2 / (double) N );
ys = (float) sqrt( sum / (double) (N-1) );
*ysigma = (float) ys;
*yrms = yr;
}
void main() {
int y[5]={2,3,4,5,6};
int N=5;
float ymean, ysigma, yrms;
y_statistics(&y[0], N, &ymean, &ysigma, &yrms);
printf("%f %f %f\n",ymean, ysigma, yrms);
}
I. 用C語言求多組數據的平均值和方差,用函數,急,幫幫忙,謝謝啦
//計算平均數,方差,標准差。#include #include #include #include #include #define N 100void TongJi(double a[],int n,double *aver,double *vari,double *stdDev){ //對長度為n的數組a進行統計,統計其平均值aver、方差vari、標准差stdDev ...
J. 用C語言如何算平均數和方差及標准差
由於沒有指明數據的來源,下面就從文本文件"data.txt"中取出一些學生的身高數據,並計算平均值,方差和標准差!代碼如下:
#include<stdio.h>
#include <math.h>
#define hh printf(" =================================== ");
void main()
{
FILE *fp;
float a[520],x,avr,fc,bzc,t,sum=0.0;
int i,k=0;
fp=fopen("D:\data.txt","r");
if(fp==NULL)
printf("文件打開失敗! ");
else
{
printf("身高數據: ");
fscanf(fp,"%f",&x);
while(x!=0)
{
a[k++]=x;
printf("%.0f ",x);
sum+=x;
fscanf(fp,"%f",&x);
}
avr=sum/k;
sum=0;
for(i=0;i<k;i++)
sum+=(a[i]-avr)*(a[i]-avr);
fc=sum/(k-1);
bzc=sqrt(fc);hh
printf(" 學生人數:%d ",k);
printf(" 身高均值:%.2f ",avr);
printf(" 身高方差:%.2f ",fc);
printf("身高標准差:%.2f ",bzc);
}
hh
fclose(fp);
}
(10)數的均方差c語言擴展閱讀:
c語言的特點
1、C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。
2、C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
3、不同的變數類型可以用結構體(struct)組合在一起。
4、只有32個保留字(reserved keywords),使變數、函數命名有更多彈性。
5、部份的變數類型可以轉換,例如整型和字元型變數。
6、通過指針(pointer),C語言可以容易的對存儲器進行低級控制。
7、預編譯處理(preprocessor)讓C語言的編譯更具有彈性。