|
分類:[C/C++]
すみません。プログラムはこちらで、質問条件は一緒です。
#include<stdio.h> #include<stdlib.h> #include<time.h> #define NUM 4 #define LIMIT 10 int main(void) { char number[LIMIT]; char answer[NUM]; char tmp,expect[LIMIT]; int hit,brow; int count = 0; int i,j; srand((unsigned int)time(NULL)); /* numberの初期化処理*/ for (i=0;i<10;i++) { number[i] = i; } for (i=0;i<10;i++) { j = rand() % 10; tmp = number[i]; number[i] = number[j]; number[j] = tmp; } for (i = 0; i < NUM; i++) { /*数値を文字に変換*/ answer[i] = number[i] + '0'; } printf("4桁入力してください。(重複しない)\n"); do { fgets(expect,10,stdin); count++; if (count>= LIMIT) { printf("正解は"); for (i = 0; i < NUM; i++) { printf("%c", answer[i]); } printf("ゲームオーバー\n"); } hit=0; brow=0; /*比較する*/ for(i=0;i<NUM;i++) { for(j=0;j<NUM;j++) { if(expect[i]==answer[j]) { if(i == j) { hit++; } else { brow++; } } } } printf("ヒット=%d ブロー=%d\n",hit,brow); if (hit == NUM) { printf("おめでとう\n"); } } /*入力と判定を繰り返すための処理*/ while(1);
return 0; }
|