[ create a new paste ] login | about

Link: http://codepad.org/JjTL3Zwl    [ raw code | fork ]

C, pasted on Jun 8:
#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;
}


Create a new paste based on this one


Comments: