C言語関係掲示板

過去ログ

No.598.配列を使って偏差値を求めるプログラム

[戻る] [ホームページ]
No.5735

配列を使って偏差値を求めるプログラム
投稿者---C言語(2003/04/09 21:29:06)


    国語 算数  理科  社会 英語
---------------------------------
A   55   79   83   31  98
---------------------------------
B   99   0   48   80  100
---------------------------------
C   78   80   75   89  30
---------------------------------
D   12   50   70   90  100
---------------------------------
偏差値Z= (偏差÷標準偏差)*10+50
表と公式使って個人別に各教科ごとの偏差値を出力するプログラムを教えて下さい。 分かりずらくてすいません。お願いします。 

No.5738

Re:配列を使って偏差値を求めるプログラム
投稿者---abc(2003/04/10 05:07:30)


直訳です。
こんなのしか作れませんがよかったら参考程度に見てください。
ローマ字が多くてで読みにくいかもしれません。

#include <stdio.h>
#include <math.h>

#define NINNZUU 4
#define KAMOKU 5

int main(void)
{
    char subject[KAMOKU][10] = {"国語", "算数", "理科", "社会", "英語"};
    char name[NINNZUU][20] = {"A", "B", "C", "D"};
    double hennsati[NINNZUU][KAMOKU], hyoujunnhennsa[KAMOKU], heikinn[KAMOKU];
    int i, n;
    int goukei;
    int score[NINNZUU][KAMOKU] = {{55, 79, 83, 31, 98},
                    {99, 0, 48, 80, 100},
                    {78, 80, 75, 89, 30},
                    {12, 50, 70, 90, 100}};
    
/* ----------------------------計算をする部分-------------------------------- */
    
    for(n = 0; n < KAMOKU; n++){
        /* 各科目の平均点を求めて配列に入れる    */
        goukei = 0;
        for(i = 0; i < NINNZUU; i++){
            goukei = goukei + score[i][n];
        }
        heikinn[n] = goukei / NINNZUU;
        
        /* 各科目の標準偏差を求めて配列に入れる    */
        goukei = 0;
        for(i = 0; i < NINNZUU; i++){
            goukei = goukei + (score[i][n] - heikinn[n])
                     * (score[i][n] - heikinn[n]);
        }
        hyoujunnhennsa[n] = sqrt(goukei / NINNZUU);
        
        /* 偏差値を求めて配列に入れる    */
        for(i = 0; i < NINNZUU; i++)
            hennsati[i][n] = (score[i][n] - heikinn[n])
                         / hyoujunnhennsa[n] * 10 + 50;
    }
    
/*---------------------------表示をする部分---------------------------------- */
    
    /* 各科目の平均点と標準偏差を表示    */
    for(n = 0; n < KAMOKU; n++){
        printf("%s| 平均点: %.1f 点\t標準偏差: %.1f\n"
            , subject[n], heikinn[n], hyoujunnhennsa[n]);
    }
    printf("\n");
    
    /* 表の題名を表示    */
    printf("偏差値\n");
    
    /* 科目名を表示    */
    printf("\t");
    for(n = 0; n < KAMOKU; n++){
        printf("  %s", subject[n]);
    }
    printf("\n");
    
    /* 個人の偏差値を表示    */
    for(i = 0; i < NINNZUU; i++){
        printf("   %s | ", name[i]);
        for(n = 0; n < KAMOKU; n++){
            printf("  %.1f", hennsati[i][n]);
        }
        printf("\n");
    }
    
    return 0;
}


No.5746

Re:配列を使って偏差値を求めるプログラム
投稿者---C言語(2003/04/11 00:07:07)


本当にありがとうございます。
参考にさせてもらいます。