4桁の英字の3桁目を当てるプログラム
乱数でとってくる4ケタの英字の3桁目を入力して当てるプログラムを
組もうとしているのですが、コンパイラしてもいまいちうまくいきません。
特に下に書いたプログラムのこの部分が違っていると思い
どのように修正したらよいのか指摘していただきたいです。
human=getchar();
if(comp[2]!=human)
{
ero=1;
}
よろしくお願いします。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
int sleep(unsigned long x)
{
clock_t c1=clock(),c2;
do{
if((c2=clock())==(clock_t)-1)
{
return 0;
}
}while(1000.0*(c2-c1)/CLOCKS_PER_SEC<x);
return 1;
}
int main(void)
{
int num,val,i,j;
char comp[21];
char human;
int ero=0;
int try_count=0;
int seikai=0;
clock_t start,end;
int num1;
char eiji[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
srand(time(NULL));
puts("英字記憶トレーニング");
do{
printf("挑戦するレベル(3~20):");
scanf("%d",&num1);
}while(num1<3 || num1>20);
printf("%d個の英字を記録しましょう。\n",num1);
start=clock();
do{
for(i=0;i<num1;i++)
{
comp[i]=eiji[rand()%strlen(eiji)];
}
comp[num1]='\0';
printf("%s",comp);
fflush(stdout);
sleep(125*num1);
printf("\r%*s\r3番目の英字を入力してください:",num1,"");
human=getchar();
if(comp[2]!=human)
{
ero=1;
}
if(ero==0)
{
printf("正解です。\n");
seikai++;
}
else
{
printf("\a間違いです。\n");
}
try_count++;
}while(try_count<2);
end=clock();
printf("%d回中%d回成功しました。\n",try_count,seikai);
printf("%.1f秒でした。\n",(double)(end-start)/CLOCKS_PER_SEC);
return 0;
}
お礼
返事が遅れてしまい申し訳ありません。 うまく動かすことができました。ありがとうございました。