#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <ctype.h>
#define NG (0)
#define OK (!(NG))
#define KETA (4)
int isNum(char *p)
{
int i;
for (i = 0; p[i]; i++) {
if (!isdigit(p[i])){
return NG;
}
}
return OK;
}
int main(void)
{
int min,max,n;
char p[KETA+2];
int ans, num, count = 0;
printf("下限を入力してください。\n");
scanf("%d",&min);
printf("上限を入力してください。\n");
scanf("%d",&max);
printf("回数を入力してください。\n");
scanf("%d",&n);
srand((unsigned) time(NULL));
ans = rand() % (max - min + 1) + min;
printf("%dから%dまでの数を当てるゲーム\n", min, max);
printf("入力回数%d回まで\n", n);
while (++count <= n) {
printf("%d回目\n", count);
printf("%dから%dまでの数を入力してください:", min, max);
fgets(p, sizeof(p), stdin), rewind(stdin);
p[strlen(p)-1] = '\0';
if (!isNum(p)) {
printf("数字を入力してください\n");
}
else {
num = atoi(p);
if (!((min <= num) && (num <= max))) {
printf("%dから%dまでの数を入力してください\n", min, max);
}
if (num == ans) {
printf("正解です\n");
break;
}
printf("答えは%dよりも%sです\n", num, (ans < num) ? "小さい" : "大きい");
}
}
if (count > n) {
printf("答えは%dでした\n", ans);
}
return 0;
}
どうすればいいでしょうか?