配列の計算について
Posted: 2013年7月09日(火) 01:52
標準入力での20個以下のいくつかのデータから、その平均と総和、最大値、最小値、標準偏差を計算するプログラムを作りたいのですがうまくいきません。もしよろしければアドバイスお願いします。
#include <stdio.h>
#include <math.h>
int main(int argc, const char * argv[]) {
int count, x, sum, sumv, ave, max, min, dev;
double i;
count = 0;
x = 0;
sum = 0;
sumv = 0;
max = 0;
min = 0;
dev = 0;
i = 0;
int mark[20];
printf("数字を入力してください (-1で入力終了)\n");
while (x != -1 && count < 20){
scanf("%d", &x);
if (x == -1){
break;
}
else{
mark[count] = x;
count++;
sum += x;
ave = sum / count;
sumv += x * x;
i = (sumv -(sum * sum / count)) / (count - 1);
dev = sqrt(i);
if( max < x ) {
max = x;
}
if( min > x ) {
min = x;
}
}
}
printf("平均 :%d\n", ave);
printf("総和 :%d\n", sum);
printf("最大値 :%d\n", max);
printf("最小値 :%d\n", min);
printf("標準偏差:%d\n", dev);
return 0;
}