< 1> < 2> < 3> < 4> < 5> < 6> < 7> | int main(void){ //終了待ち getchar(); return 0; } |
< 1> < 2> < 3> < 4> < 5> < 6> < 7> < 8> < 9> < 10> < 11> < 12> < 13> < 14> < 15> < 16> < 17> < 18> < 19> < 20> < 21> < 22> < 23> < 24> < 25> | int main(void){ //(1)ソース上に直接書き込んだ問題 char question[10][2][16]={ {"1+2=","3"}, {"3+4=","7"}, {"1-2=","-1"}, {"3-4=","-1"}, {"1*2=","2"}, {"3*4=","12"}, {"1/2=","0.5"}, {"3/4=","0.75"}, {"1の2乗=","1"}, {"3の4乗=","81"} }; //選択された問題 int sel_question; //入力された答え char player_ans[80]=""; //終了待ち getchar(); return 0; } |
< 1> < 2> < 3> < 4> < 5> < 6> < 7> < 8> < 9> < 10> < 11> < 12> < 13> < 14> < 15> < 16> < 17> < 18> < 19> < 20> < 21> < 22> < 23> < 24> < 25> < 26> < 27> < 28> < 29> < 30> < 31> < 32> < 33> < 34> < 35> < 36> < 37> < 38> < 39> | #include <stdlib.h> #include <time.h> int main(void){ //ソース上に直接書き込んだ問題 char question[10][2][16]={ {"1+2=","3"}, {"3+4=","7"}, {"1-2=","-1"}, {"3-4=","-1"}, {"1*2=","2"}, {"3*4=","12"}, {"1/2=","0.5"}, {"3/4=","0.75"}, {"1の2乗=","1"}, {"3の4乗=","81"} }; //選択された問題 int sel_question; //入力された答え char player_ans[80]=""; //機能「乱数を使って選択し表示します」 srand(time(NULL));//乱数を初期化 sel_question=rand()%10;//「選択された問題」に0〜9の乱数を生成して代入 printf("%s",question[sel_question][0]);//(1)選択した問題を表示 //機能「その問題の答えをプレイヤーはキーボードから入力」 fgets(player_ans,79,stdin); //機能「成否を判定します」 //機能「クリア表示して終了」 //終了待ち getchar(); return 0; } |
< 1> < 2> < 3> < 4> < 5> < 6> < 7> < 8> < 9> < 10> < 11> < 12> < 13> < 14> < 15> < 16> < 17> < 18> < 19> < 20> < 21> < 22> < 23> < 24> < 25> < 26> < 27> < 28> < 29> < 30> < 31> < 32> < 33> < 34> < 35> < 36> < 37> < 38> < 39> < 40> < 41> < 42> < 43> < 44> < 45> < 46> < 47> < 48> < 49> < 50> < 51> | #include <stdlib.h> #include <string.h> #include <time.h> int main(void){ //ソース上に直接書き込んだ問題 char question[10][2][16]={ {"1+2=","3"}, {"3+4=","7"}, {"1-2=","-1"}, {"3-4=","-1"}, {"1*2=","2"}, {"3*4=","12"}, {"1/2=","0.5"}, {"3/4=","0.75"}, {"1の2乗=","1"}, {"3の4乗=","81"} }; //選択された問題 int sel_question; //入力された答え char player_ans[80]=""; //機能「乱数を使って選択し表示します」 srand(time(NULL)); sel_question=rand()%10; printf("%s",question[sel_question][0]); while(1){//for(;;)が本来の無限ループですが、こっちもよく使われます //機能「その問題の答えをプレイヤーはキーボードから入力」 fgets(player_ans,79,stdin); //機能「成否を判定します」 /*(1)入力の最後の改行文字除去は、大真面目にやると↓のようになりますが・・・ if(strlen(player_ans)&&(player_ans[strlen(player_ans)-1]=='\n')){ player_ans[strlen(player_ans)-1]='\0'; } */ if(player_ans[0]!='\0')player_ans[strlen(player_ans)-1]='\0';//(2)これぐらいでも十分です。 if(!strcmp(player_ans,question[sel_question][1]))break;//(3)入力と正解を比較し、同じならループ終了 puts("違います。もう一度入力してください。"); } //機能「クリア表示して終了」 puts("正解です。Enterを押すと終了します。"); //終了待ち getchar(); return 0; } |