|
分類:[.NET 全般]
以下のプログラムを、出力、比較処理、文字変換処理 で関数化したいのですが、うまくできません。 参考サイトなどはいりません。お願いします。
#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("%c", answer[i]); } printf("\n"); printf("4桁入力してください。\n"); do { fgets(expect,10,stdin); if (count++ >= LIMIT) { printf("エラーが発生しました。\n"); return 1; } 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; }
|