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

///// Staff Roll /////
プログラム:>>1

///// special thanks /////
 お前らの皆さん