注意:在C语言中,变量必须声明在函数开始的地方
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<time.h>
#define true 1
#define false 0
int main(){
char another_game ='Y' ;
int correct = false;
int counter = 0 ;
int sequence_length = 0 ;
time_t seed = 0 ;
int number = 0 ;
time_t now = 0 ;
int time_taken = 0 ;
int i =0;
printf(" \n To play Simple Simon ,");
printf(" \n Watch carefully ,sa the digits are only displayed for a second !");
printf(" \n the computer will remove them , and then prompt you ");
printf(" to enter the same sequence.");
printf(" \n When you do , you must put spaces between the digits.\n");
printf(" \n GOOD lUCK !\n Press Enter to play \n");
scanf("%C",&another_game);
do{
correct = true ;
counter = 0;
sequence_length = 2 ;
time_taken = clock();
while(correct){
sequence_length += counter++% 3 == 0 ;
seed = time(NULL);
now = clock();
srand((unsigned int)seed);
//i要在开始的时候声明,在此int i = 0 ; 是不对的
for( i = 1 ; i <= sequence_length ; i ++) {
printf("%d",rand() % 10);
}
for(;clock() - now <CLOCKS_PER_SEC;);
printf("\r");
for( i =0 ;i <= sequence_length ; i++){
printf(" ");
}
if(counter == 1){
printf("\n Now you enter the sequence - don't forget"
" the spaces \n ");
}else{
printf("\r");
}
srand((unsigned int)seed);
for(i = 1 ; i <= sequence_length ; i++){
scanf("%d",&number);
if(number != rand() %10){
correct = false ;
break ;
}
}
printf("%s \n",correct ? "Correct!":"Wrong!");
}
time_taken = (clock() - time_taken);
printf("\n\n Your score is %d",--counter * 100 / time_taken);
fflush(stdin);
printf("\n DO you want to play again (y/n)? ");
scanf("%c",&another_game);
}while(toupper(another_game) == 'Y' );
return 0 ;
}