平均、分散を求めたときの入力エラー
入力された10個の数字について平均、分散を求めるため素朴に書いてみました。
#include<stdio.h>
int main(){
char buf[256];
double a,b,c,d,e,f,g,h,i,j,mean,variance;
fgets(buf,256,stdin);
sscanf(buf,"%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j);
if(!sscanf(buf,"%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j)){
printf("数字を入力してください。\n");
}else{
mean=(a+b+c+d+e+f+g+h+i+j)/10;
variance=((a-mean)*(a-mean)+(b-mean)*(b-mean)+(c-mean)*(c-mean)+(d-mean)*(d-mean)+(e-mean)*(e-mean)+(f-mean)*(f-mean)+(g-mean)*(g-mean)+(h-mean)*(h-mean)+(i-mean)*(i-mean)+(j-mean)*(j-mean))/10;
printf("平均=%lf\n",mean);
printf("分散=%lf\n",variance);
return 0;
}
}
途中、数字が入力されなかったときに”数字を入力してください。”
と書きたかったのですがうまくいきません。あと、10個より少なく入力したときのエラー表示もしたいのですが…
教えてください。よろしくお願いします。
お礼
そうですね。 deviation += sqrt(variance); は deviation = sqrt(variance); ということですかね?