//Study10.c
#include <stdio.h>
#include <stdlib.h>
char getHyouka(int);//関数プロトタイプの宣言
char* getKamoku(int);//関数プロトタイプの宣言
struct seiseki {//成績を表示する構造体
char cls;//クラス名(文字)
int no;//出席番号
char *name;//名前
int tokuten[6];//国語、数学、理科、社会、英語、合計を格納
char rank;//評価 400点以上 A 300点以上 B 200点以上 C 100点以上 D 100点未満 E
};
int main (int argc, const char * argv[])
{
struct seiseki takepon;
scanf("%c",&takepon.
cls); //scanf("%s",&takepon.name);
takepon.
name = (char*)malloc(128); scanf("%s",takepon.
name); takepon.tokuten[5] = 0;
for(int i=0;i<5;i++){
char *kamoku=getKamoku(i);
printf("%sを入力して下さい\t",kamoku
); scanf("%d",&takepon.
tokuten[i
]); takepon.tokuten[5]+=takepon.tokuten[i];
}
//printf("クラス:%c\t出席番号:%d\t名前:%s\n",takepon.cls,takepon.no,&takepon.name);
printf("クラス:%c\t出席番号:%d\t名前:%s\n",takepon.
cls,takepon.
no,takepon.
name); for(int i=0;i<5;i++){
char *kamoku=getKamoku(i);
printf("%s:%d\t",kamoku
,takepon.
tokuten[i
]); }
printf("合計:%d\t",takepon.
tokuten[5]); printf("評価:%c\n",getHyouka
(takepon.
tokuten[5])); return 0;
}
//科目名を返す関数
char* getKamoku(int i){
char *kamoku;
switch (i) {
case 0:
kamoku="国語";
break;
case 1:
kamoku="数学";
break;
case 2:
kamoku="理科";
break;
case 3:
kamoku="社会";
break;
case 4:
kamoku="英語";
break;
default:
break;
}
return kamoku;
}
//評価を返す関数
char getHyouka(int tokuten){
char rank;
if(tokuten >= 400){
rank = 'A';
}else if(tokuten >= 300){
rank = 'B';
}else if(tokuten >= 200){
rank = 'C';
}else if(tokuten >= 100){
rank = 'D';
}else{
rank = 'E';
}
return rank;
}
Ly9TdHVkeTEwLmMKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KY2hhciBnZXRIeW91a2EoaW50KTsvL+mWouaVsOODl+ODreODiOOCv+OCpOODl+OBruWuo+iogApjaGFyKiBnZXRLYW1va3UoaW50KTsvL+mWouaVsOODl+ODreODiOOCv+OCpOODl+OBruWuo+iogAoKc3RydWN0IHNlaXNla2kgey8v5oiQ57i+44KS6KGo56S644GZ44KL5qeL6YCg5L2TCiAgICBjaGFyIGNsczsvL+OCr+ODqeOCueWQje+8iOaWh+Wtl++8iQogICAgaW50IG5vOy8v5Ye65bit55Wq5Y+3CiAgICBjaGFyICpuYW1lOy8v5ZCN5YmNCiAgICBpbnQgdG9rdXRlbls2XTsvL+WbveiqnuOAgeaVsOWtpuOAgeeQhuenkeOAgeekvuS8muOAgeiLseiqnuOAgeWQiOioiOOCkuagvOe0jQogICAgY2hhciByYW5rOy8v6KmV5L6hIDQwMOeCueS7peS4iiBBIDMwMOeCueS7peS4iiBCIDIwMOeCueS7peS4iiBDIDEwMOeCueS7peS4iiBEIDEwMOeCueacqua6gCBFCn07CgppbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pCnsKICAgIHN0cnVjdCBzZWlzZWtpIHRha2Vwb247CiAgICBwcmludGYoIuOCr+ODqeOCueOCkuWFpeWKm+OBl+OBpuS4i+OBleOBhFx0Iik7CiAgICBmZmx1c2goc3Rkb3V0KTsKICAgIHNjYW5mKCIlYyIsJnRha2Vwb24uY2xzKTsKICAgIHByaW50Zigi5Ye65bit55Wq5Y+344KS5YWl5Yqb44GX44Gm5LiL44GV44GEXHQiKTsKICAgIGZmbHVzaChzdGRvdXQpOwogICAgc2NhbmYoIiVkIiwmdGFrZXBvbi5ubyk7CiAgICBwcmludGYoIuWQjeWJjeOCkuWFpeWKm+OBl+OBpuS4i+OBleOBhFx0Iik7CiAgICBmZmx1c2goc3Rkb3V0KTsKICAgIC8vc2NhbmYoIiVzIiwmdGFrZXBvbi5uYW1lKTsKICAgIHRha2Vwb24ubmFtZSA9IChjaGFyKiltYWxsb2MoMTI4KTsKICAgIHNjYW5mKCIlcyIsdGFrZXBvbi5uYW1lKTsKICAgIHRha2Vwb24udG9rdXRlbls1XSA9IDA7CiAgICBmb3IoaW50IGk9MDtpPDU7aSsrKXsKICAgICAgICBjaGFyICprYW1va3U9Z2V0S2Ftb2t1KGkpOwogICAgICAgIHByaW50ZigiJXPjgpLlhaXlipvjgZfjgabkuIvjgZXjgYRcdCIsa2Ftb2t1KTsKICAgICAgICBmZmx1c2goc3Rkb3V0KTsKICAgICAgICBzY2FuZigiJWQiLCZ0YWtlcG9uLnRva3V0ZW5baV0pOwogICAgICAgIHRha2Vwb24udG9rdXRlbls1XSs9dGFrZXBvbi50b2t1dGVuW2ldOwogICAgfQogICAgLy9wcmludGYoIuOCr+ODqeOCuTolY1x05Ye65bit55Wq5Y+3OiVkXHTlkI3liY06JXNcbiIsdGFrZXBvbi5jbHMsdGFrZXBvbi5ubywmdGFrZXBvbi5uYW1lKTsKICAgIHByaW50Zigi44Kv44Op44K5OiVjXHTlh7rluK3nlarlj7c6JWRcdOWQjeWJjTolc1xuIix0YWtlcG9uLmNscyx0YWtlcG9uLm5vLHRha2Vwb24ubmFtZSk7CiAgICBmb3IoaW50IGk9MDtpPDU7aSsrKXsKICAgICAgICBjaGFyICprYW1va3U9Z2V0S2Ftb2t1KGkpOwogICAgICAgIHByaW50ZigiJXM6JWRcdCIsa2Ftb2t1LHRha2Vwb24udG9rdXRlbltpXSk7CiAgICB9CiAgICBwcmludGYoIuWQiOioiDolZFx0Iix0YWtlcG9uLnRva3V0ZW5bNV0pOwogICAgcHJpbnRmKCLoqZXkvqE6JWNcbiIsZ2V0SHlvdWthKHRha2Vwb24udG9rdXRlbls1XSkpOwogICAgcmV0dXJuIDA7Cn0KCi8v56eR55uu5ZCN44KS6L+U44GZ6Zai5pWwCmNoYXIqIGdldEthbW9rdShpbnQgaSl7CiAgICBjaGFyICprYW1va3U7CiAgICBzd2l0Y2ggKGkpIHsKICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgIGthbW9rdT0i5Zu96KqeIjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxOgogICAgICAgICAgICBrYW1va3U9IuaVsOWtpiI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMjoKICAgICAgICAgICAga2Ftb2t1PSLnkIbnp5EiOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgIGthbW9rdT0i56S+5LyaIjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSA0OgogICAgICAgICAgICBrYW1va3U9IuiLseiqniI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgcmV0dXJuIGthbW9rdTsKfQoKLy/oqZXkvqHjgpLov5TjgZnplqLmlbAKY2hhciBnZXRIeW91a2EoaW50IHRva3V0ZW4pewogICAgY2hhciByYW5rOwogICAgaWYodG9rdXRlbiA+PSA0MDApewogICAgICAgIHJhbmsgPSAnQSc7CiAgICB9ZWxzZSBpZih0b2t1dGVuID49IDMwMCl7CiAgICAgICAgcmFuayA9ICdCJzsKICAgIH1lbHNlIGlmKHRva3V0ZW4gPj0gMjAwKXsKICAgICAgICByYW5rID0gJ0MnOwogICAgfWVsc2UgaWYodG9rdXRlbiA+PSAxMDApewogICAgICAgIHJhbmsgPSAnRCc7CiAgICB9ZWxzZXsKICAgICAgICByYW5rID0gJ0UnOwogICAgfQogICAgcmV0dXJuIHJhbms7Cn0K