fork download
  1. //Study10.c
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. char getHyouka(int);//関数プロトタイプの宣言
  5. char* getKamoku(int);//関数プロトタイプの宣言
  6.  
  7. struct seiseki {//成績を表示する構造体
  8. char cls;//クラス名(文字)
  9. int no;//出席番号
  10. char *name;//名前
  11. int tokuten[6];//国語、数学、理科、社会、英語、合計を格納
  12. char rank;//評価 400点以上 A 300点以上 B 200点以上 C 100点以上 D 100点未満 E
  13. };
  14.  
  15. int main (int argc, const char * argv[])
  16. {
  17. struct seiseki takepon;
  18. printf("クラスを入力して下さい\t");
  19. fflush(stdout);
  20. scanf("%c",&takepon.cls);
  21. printf("出席番号を入力して下さい\t");
  22. fflush(stdout);
  23. scanf("%d",&takepon.no);
  24. printf("名前を入力して下さい\t");
  25. fflush(stdout);
  26. //scanf("%s",&takepon.name);
  27. takepon.name = (char*)malloc(128);
  28. scanf("%s",takepon.name);
  29. takepon.tokuten[5] = 0;
  30. for(int i=0;i<5;i++){
  31. char *kamoku=getKamoku(i);
  32. printf("%sを入力して下さい\t",kamoku);
  33. fflush(stdout);
  34. scanf("%d",&takepon.tokuten[i]);
  35. takepon.tokuten[5]+=takepon.tokuten[i];
  36. }
  37. //printf("クラス:%c\t出席番号:%d\t名前:%s\n",takepon.cls,takepon.no,&takepon.name);
  38. printf("クラス:%c\t出席番号:%d\t名前:%s\n",takepon.cls,takepon.no,takepon.name);
  39. for(int i=0;i<5;i++){
  40. char *kamoku=getKamoku(i);
  41. printf("%s:%d\t",kamoku,takepon.tokuten[i]);
  42. }
  43. printf("合計:%d\t",takepon.tokuten[5]);
  44. printf("評価:%c\n",getHyouka(takepon.tokuten[5]));
  45. return 0;
  46. }
  47.  
  48. //科目名を返す関数
  49. char* getKamoku(int i){
  50. char *kamoku;
  51. switch (i) {
  52. case 0:
  53. kamoku="国語";
  54. break;
  55. case 1:
  56. kamoku="数学";
  57. break;
  58. case 2:
  59. kamoku="理科";
  60. break;
  61. case 3:
  62. kamoku="社会";
  63. break;
  64. case 4:
  65. kamoku="英語";
  66. break;
  67. default:
  68. break;
  69. }
  70. return kamoku;
  71. }
  72.  
  73. //評価を返す関数
  74. char getHyouka(int tokuten){
  75. char rank;
  76. if(tokuten >= 400){
  77. rank = 'A';
  78. }else if(tokuten >= 300){
  79. rank = 'B';
  80. }else if(tokuten >= 200){
  81. rank = 'C';
  82. }else if(tokuten >= 100){
  83. rank = 'D';
  84. }else{
  85. rank = 'E';
  86. }
  87. return rank;
  88. }
  89.  
Success #stdin #stdout 0s 2384KB
stdin
Z
1
Test
80
81
82
83
84
stdout
クラスを入力して下さい	出席番号を入力して下さい	名前を入力して下さい	国語を入力して下さい	数学を入力して下さい	理科を入力して下さい	社会を入力して下さい	英語を入力して下さい	クラス:Z	出席番号:1	名前:Test
国語:80	数学:81	理科:82	社会:83	英語:84	合計:410	評価:A