|
直訳です。
こんなのしか作れませんがよかったら参考程度に見てください。
ローマ字が多くてで読みにくいかもしれません。
#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;
}
|