#include <stdio.h>
struct kamoku1 { /* 選択科目1 */
int kokugo;
int eigo;
int syakai;
};
struct kamoku2 { /* 選択科目2 */
int suugaku;
int eigo;
};
struct seiseki { /* 成績 */
int no; /* 学生番号 */
char name[40]; /* 氏名 */
int sentaku; /* 選択種別 */
union kamoku{ /* 選択科目 */
struct kamoku1 k1;
struct kamoku2 k2;
}ka;
double heikin; /* 平均値 */
};
int main( void )
{
struct seiseki mycls[20] = {
{ 1001, "小柳幸江", 1, 76, 87, 69, 0.0 },
{ 1002, "大場優", 2, 79, 48, 0, 0.0 },
{ 1003, "新庄あやか", 2, 85, 98, 0, 0.0 },
{ 1004, "野崎栄一", 1, 43, 76, 56, 0.0 },
{ 1005, "本多健也", 1, 69, 91, 69, 0.0 },
{ 9999, "" , 0, 0, 0, 0, 0.0 },
};
int i = 0;
while ( mycls[i].no != 9999 ) {
/* 選択科目別に平均値を求める */
if ( mycls[i].sentaku == 1 ) {
mycls[i].heikin = ( double )( mycls[i].ka.k1.kokugo
+ mycls[i].ka.k1.eigo
+ mycls[i].ka.k1.syakai ) / 3;
}
else {
mycls[i].heikin = ( double )( mycls[i].ka.k2.suugaku
+ mycls[i].ka.k2.eigo ) / 2;
}
/* 結果の表示 */
printf( "%4d %-20s 平均:%6.2f\n",
mycls[i].no, mycls[i].name, mycls[i].heikin );
i++;
}
return 0;
}
▼戻る▼
「初心者のためのポイント学習C言語」 Copyright(c) 2000-2004 TOMOJI All Rights Reserved