< 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> < 52> < 53> < 54> < 55> < 56> < 57> < 58> < 59> | #include <stdlib.h> #include <time.h> int main(void){ int now;//現在値 int sel=0;//プレイヤーの選択(選択結果) int next;//次回値 int loopcnt;//成功回数 char buf[256]="";//入力バッファ int cmpres=0;//現在値と次回値の比較結果 int numbers[10]={0,1,2,3,4,5,6,7,8,9};//出現させる数字配列 int i,n,n2; //randを初期化 srand(time(NULL)); //前回の方法で数字配列をシャッフル for(i=10;i;i--){ n=rand()%i; n2=numbers[i-1]; numbers[i-1]=numbers[n]; numbers[n]=n2; } //初期値を代入 now=numbers[0]; //ループ for(loopcnt=0;loopcnt<9;loopcnt++){//(1) printf("現在の値:%d\n" "1:現在値<次回値 2:現在値>次回値\n" "次回はどうなると思いますか?:",now); fgets(buf,255,stdin); if((buf[0]>='1')&&(buf[0]<='2')){ sel=buf[0]-'0'; } next=numbers[loopcnt+1];//次回値を代入 if(now<next){ cmpres=1; } else{ cmpres=2; } now=next; if(sel==cmpres){ printf("成功!%dでした。\n\n",now); } else{ //成功数表示 printf("失敗!%dでした。\n" "%d回成功しました。\n",now,loopcnt); break;//ゲーム終了 } } if(loopcnt==9){//(2)失敗してなければloopcntは9になるはず puts("ゲームクリア!"); } //終了待ち getchar(); return 0; } |
名前 | 型名 | 相対ID |
---|---|---|
now | int | 0 |
sel | int | 4 |
next | int | 8 |
loopcnt | int | 12 |
buf | char[256] | 16 |
cmpres | int | 272 |
numbers | int[10] | 276 |
i | int | 316 |
n | int | 320 |
n2 | int | 324 |