#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