#include <stdio.h>
#include <math.h>
void input(int *n)
{
printf("INPUT number in range 0 .. 100 ->\n");
do {
scanf("%d", n);
} while ( *n < 0 || *n >= 101 );
}
double seiseki(int n, const int x[], double t[])
{
int i;
double avg, sqavg, stdev;
avg = sqavg = 0.0;
for ( i = 0; i < n; i++ ) {
avg += x[i];
sqavg += x[i]*x[i];
}
avg /= n;
sqavg /= n;
stdev = sqrt(sqavg - avg*avg);
for ( i = 0; i < n; i++ )
t[i] = stdev ? (10 * ( x[i] - avg ) / stdev + 50.0) : 50.0;
return avg;
}
int main()
{
int x[101], n, i;
double avg, ss[101];
printf("how many students\n");
input(&n);
printf("reading data...\n");
for ( i = 0; i < n; i++ )
input(&x[i]);
avg = seiseki(n, x, ss);
printf("平均点 %.1lf\n", avg);
for ( i = 0; i < n; i++ )
printf("No. %3d 点数 %3d 偏差値 %.1lf\n", i+1, x[i], ss[i]);
}
int main_q1()
{
int x[101], n, i;
double avg, sqavg, stdev, ss;
printf("how many students\n");
input(&n);
printf("reading data...\n");
for ( i = 0; i < n; i++ )
input(&x[i]);
avg = sqavg = 0.0;
for ( i = 0; i < n; i++ ) {
avg += x[i];
sqavg += x[i]*x[i];
}
avg /= n;
sqavg /= n;
stdev = sqrt(sqavg - avg*avg);
printf("平均点 %.1lf\n", avg);
for ( i = 0; i < n; i++ ) {
ss = stdev ? (10 * ( x[i] - avg ) / stdev + 50.0) : 50.0;
printf("No. %3d 点数 %3d 偏差値 %.1lf\n", i+1, x[i], ss);
}
return 0;
}