fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define SIZE_OF_ARRAY(x) sizeof(x)/sizeof(x[0])
  4. #define TOTAL_OF_QUESTION 5
  5. #define LIMIT_OF_INPUT 16
  6.  
  7. char toi[TOTAL_OF_QUESTION][LIMIT_OF_INPUT]={"int", "double", "char", "printf", "break"};
  8. /*問題の内容についてはmondai()内で何度も利用するのでグローバル変数として宣言*/
  9.  
  10. /*
  11. 出題に関する機能を分離
  12. 正解の場合と不正解の場合で返り値を変えてmain()に処理を振り分けてもらおうかな
  13. */
  14. int mondai(int number){
  15. /*まずはnumber(0以上)で今何問目かを受け取る*/
  16.  
  17. char inpt[LIMIT_OF_INPUT];
  18. /*入力された文字はmondai()内でしか使わないので中で宣言*/
  19.  
  20.  
  21. printf("%d問目 つ:%s\n", number + 1, toi[number]);
  22. /*3問目ならnumber=2なので
  23. printf("%d問目 つ%s\n", 3, toi[2]);
  24. となる*/
  25.  
  26. scanf("%LIMIT_OF_INPUTs", inpt);
  27.  
  28. /*正解なら1,不正解なら0を返す*/
  29. if (strcmp(inpt,toi[number]) == 0){
  30. return 1;
  31. } else {
  32. return 0;
  33. }
  34. }
  35.  
  36.  
  37. int main(void)
  38.  
  39. {
  40.  
  41. int sta;
  42. printf("\n///////C言語でよく使う言葉タイピングゲーム///////\n(´・ω・`) HELLO!OMAERA! (´・ω・`)\nゲームを始めるには 1 と入力した後にEnterを押してね。 \n");
  43. scanf("\n%d", &sta);
  44.  
  45. if (sta == 1) {
  46. int i;
  47. int youso=SIZE_OF_ARRAY(toi);
  48. /*後の拡張のため、要素数を5でなく変数に格納した*/
  49.  
  50.  
  51. printf("表示される言葉を入力しよう。\n");
  52. for(i = 0; i < youso; i++){
  53. /*iが今何問目かを表すことになる
  54. 全問正解するか不正解でループを抜ける*/
  55.  
  56.  
  57. if(mondai(i) == 1){
  58.  
  59. /*最後とその前だけメッセージが違う。処理を振り分けよう*/
  60. if(i < (youso-2)){
  61. printf("正解。次の問題だよ。\n");
  62. } else if(i == (youso-2)){
  63. printf("正解。最後の問題だよ。\n");
  64. }
  65.  
  66. } else {
  67. break;/*forループを強制脱出*/
  68. }
  69.  
  70. /*
  71. ループを抜けた時のiの値まとめ
  72. 1問目不正解:i=0
  73. 2問目不正解:i=1
  74. (youso-1)=4問目不正解:i=3
  75. youso=5問目不正解:i=4
  76. 全問正解:i=5
  77. */
  78.  
  79. }
  80. printf("%d",i);
  81.  
  82. /*残りはエンディング処理の振り分け*/
  83. if(i == youso){
  84. printf("おめでとう!全問正解だ!何度も繰り返してタイピングマスターになろう!\n\n///// Staff Roll /////\nプログラム:>>1\n\n///// special thanks /////\n お前らの皆さん \n\n");
  85. } else if(i == (youso-1)){
  86. printf("惜しい。もう一度挑戦しよう。\n");
  87. } else if(i == (youso-2)){
  88. printf("残念。またの挑戦を待っている。\n");
  89. } else if(i == (youso-3)){
  90. printf("頑張れ。負けるな。\n");
  91. } else if(i == 0){
  92. printf("間違いだよ。\n");
  93. } else {
  94. printf("残念。\n");
  95. }
  96.  
  97. } else {
  98. printf("遊んでくれないのん?(´・ω・`)ショボーン\n");
  99. }
  100. return 0;
  101. }
Success #stdin #stdout 0s 2160KB
stdin
1
int
double
char
printf
break
stdout
///////C言語でよく使う言葉タイピングゲーム///////
(´・ω・`)        HELLO!OMAERA!        (´・ω・`)
ゲームを始めるには 1 と入力した後にEnterを押してね。 
表示される言葉を入力しよう。
1問目 つ:int
0間違いだよ。