//Study10.c
#include <stdio.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 ) ; 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 ) ; 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+IApjaGFyIGdldEh5b3VrYShpbnQpOy8v6Zai5pWw44OX44Ot44OI44K/44Kk44OX44Gu5a6j6KiACmNoYXIqIGdldEthbW9rdShpbnQpOy8v6Zai5pWw44OX44Ot44OI44K/44Kk44OX44Gu5a6j6KiACgpzdHJ1Y3Qgc2Vpc2VraSB7Ly/miJDnuL7jgpLooajnpLrjgZnjgovmp4vpgKDkvZMKICAgIGNoYXIgY2xzOy8v44Kv44Op44K55ZCN77yI5paH5a2X77yJCiAgICBpbnQgbm87Ly/lh7rluK3nlarlj7cKICAgIGNoYXIgKm5hbWU7Ly/lkI3liY0KICAgIGludCB0b2t1dGVuWzZdOy8v5Zu96Kqe44CB5pWw5a2m44CB55CG56eR44CB56S+5Lya44CB6Iux6Kqe44CB5ZCI6KiI44KS5qC857SNCiAgICBjaGFyIHJhbms7Ly/oqZXkvqEgNDAw54K55Lul5LiKIEEgMzAw54K55Lul5LiKIEIgMjAw54K55Lul5LiKIEMgMTAw54K55Lul5LiKIEQgMTAw54K55pyq5rqAIEUKfTsKCmludCBtYWluIChpbnQgYXJnYywgY29uc3QgY2hhciAqIGFyZ3ZbXSkKewogICAgc3RydWN0IHNlaXNla2kgdGFrZXBvbjsKICAgIHByaW50Zigi44Kv44Op44K544KS5YWl5Yqb44GX44Gm5LiL44GV44GEXHQiKTsKICAgIHNjYW5mKCIlYyIsJnRha2Vwb24uY2xzKTsKICAgIHByaW50Zigi5Ye65bit55Wq5Y+344KS5YWl5Yqb44GX44Gm5LiL44GV44GEXHQiKTsKICAgIHNjYW5mKCIlZCIsJnRha2Vwb24ubm8pOwogICAgcHJpbnRmKCLlkI3liY3jgpLlhaXlipvjgZfjgabkuIvjgZXjgYRcdCIpOwogICAgc2NhbmYoIiVzIiwmdGFrZXBvbi5uYW1lKTsKICAgIGZvcihpbnQgaT0wO2k8NTtpKyspewogICAgICAgIGNoYXIgKmthbW9rdT1nZXRLYW1va3UoaSk7CiAgICAgICAgcHJpbnRmKCIlc+OCkuWFpeWKm+OBl+OBpuS4i+OBleOBhFx0IixrYW1va3UpOwogICAgICAgIHNjYW5mKCIlZCIsJnRha2Vwb24udG9rdXRlbltpXSk7CiAgICAgICAgdGFrZXBvbi50b2t1dGVuWzVdKz10YWtlcG9uLnRva3V0ZW5baV07CiAgICB9CiAgICBwcmludGYoIuOCr+ODqeOCuTolY1x05Ye65bit55Wq5Y+3OiVkXHTlkI3liY06JXNcbiIsdGFrZXBvbi5jbHMsdGFrZXBvbi5ubywmdGFrZXBvbi5uYW1lKTsKICAgIGZvcihpbnQgaT0wO2k8NTtpKyspewogICAgICAgIGNoYXIgKmthbW9rdT1nZXRLYW1va3UoaSk7CiAgICAgICAgcHJpbnRmKCIlczolZFx0IixrYW1va3UsdGFrZXBvbi50b2t1dGVuW2ldKTsKICAgIH0KICAgIHByaW50Zigi5ZCI6KiIOiVkXHQiLHRha2Vwb24udG9rdXRlbls1XSk7CiAgICBwcmludGYoIuipleS+oTolY1xuIixnZXRIeW91a2EodGFrZXBvbi50b2t1dGVuWzVdKSk7CiAgICByZXR1cm4gMDsKfQoKLy/np5Hnm67lkI3jgpLov5TjgZnplqLmlbAKY2hhciogZ2V0S2Ftb2t1KGludCBpKXsKICAgIGNoYXIgKmthbW9rdTsKICAgIHN3aXRjaCAoaSkgewogICAgICAgIGNhc2UgMDoKICAgICAgICAgICAga2Ftb2t1PSLlm73oqp4iOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIGthbW9rdT0i5pWw5a2mIjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyOgogICAgICAgICAgICBrYW1va3U9IueQhuenkSI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMzoKICAgICAgICAgICAga2Ftb2t1PSLnpL7kvJoiOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgIGthbW9rdT0i6Iux6KqeIjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICByZXR1cm4ga2Ftb2t1Owp9CgovL+ipleS+oeOCkui/lOOBmemWouaVsApjaGFyIGdldEh5b3VrYShpbnQgdG9rdXRlbil7CiAgICBjaGFyIHJhbms7CiAgICBpZih0b2t1dGVuID49IDQwMCl7CiAgICAgICAgcmFuayA9ICdBJzsKICAgIH1lbHNlIGlmKHRva3V0ZW4gPj0gMzAwKXsKICAgICAgICByYW5rID0gJ0InOwogICAgfWVsc2UgaWYodG9rdXRlbiA+PSAyMDApewogICAgICAgIHJhbmsgPSAnQyc7CiAgICB9ZWxzZSBpZih0b2t1dGVuID49IDEwMCl7CiAgICAgICAgcmFuayA9ICdEJzsKICAgIH1lbHNlewogICAgICAgIHJhbmsgPSAnRSc7CiAgICB9CiAgICByZXR1cm4gcmFuazsKfQo=
compilation info
prog.c: In function ‘main’:
prog.c:22:5: error: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char **’ [-Werror=format=]
scanf("%s",&takepon.name);
^
prog.c:29:5: error: format ‘%s’ expects argument of type ‘char *’, but argument 4 has type ‘char **’ [-Werror=format=]
printf("クラス:%c\t出席番号:%d\t名前:%s\n",takepon.cls,takepon.no,&takepon.name);
^
cc1: all warnings being treated as errors
stdout