这段代码是一个叫simon的游戏,就是输出任意数码 然后消失 然后请用户输入
但是很奇怪编译执行之后,最后一句printf执行了但是scanf却不执行 为什么
编译器是devc++
// a simple simon game
#include
#include
#include
#include
#include
int main(void)
{
char another_game='Y';
const unsigned delay=1;
bool answer=true;
unsigned tries=0;
unsigned digits=0;
time_t seed=0;
time_t wait_start=0;
unsigned number=0;
printf("To play a Simple Simon,watch the screen for a sequence of digits.");
printf("\nWatch carefully, as the digits are only played for %u second%s.",delay, delay==1?"":"s");
printf("\nThe computer will remove them, then prompt you to enter the same sequence.");
printf("\nWhen you do, you must put space in your digits.");
printf("\nGood luck! Press enter to play.\n");
do
{
answer=true;
tries=0;
digits=2;
while(answer)
{
++tries;
srand(time(&seed));//without & the program goes wrong
for(unsigned i=1;i<=digits;++i)
printf("%d ",rand()%10);//output the number
wait_start=clock();
for(;clock()-wait_start<delay*CLOCKS_PER_SEC;);
printf("\r");
for(unsigned i=1;i<=digits;++i)
printf(" ");
printf("\r");
if(tries==1)
printf("make sure enter the space between digits!\n");
srand(seed);
for(unsigned i=1;i<=digits;++i)
{
scanf("%u",&number);//how to make sure the value of seed is stayed
if(number!=rand()%10)
{
answer=false;
}
}
if(answer&&(tries%3==0))
digits++;
printf("%s\n",answer?"correct":"wrong");
}
printf("\nDo you want to play again(Y/N)?");
scanf("%c",&another_game);
}while(tolower(another_game)=='y');
return 0;
}