新手求助!小程序出错

Release0035 2012-10-22 11:57:57
数字小游戏

#include<stdio.h> /* For input and output */
#include<ctype.h> /* For toupper() function */
#include<stdlib.h> /* For rand() and srand() functions */
#include<time.h> /* For timr() function */
#define TURE 1 /* Define the symbol TURE */
#define FALSE 0 /* Define the symbol FALSE */
void main()
{
/* Records if anther game is to be played*/
char another_game ='Y';

/* TURE if corrrct sequence entered,FALSE otherwise*/
int correct = FALSE;
/* Number of sequence entered successfully*/

int counter = 0;

int sequence_length=0; /* Number of digits in a sequence */
int i=0; /* Loop conter */
long seed=0; /* Seed value for random number sequence */
int number=0; /* Stores an input digit */
long now =0; /* Stores current time -seed for random values */
long time_taken = 0; /* Time taken for game in seconds */



/* Decribe how the game is played */
printf("Welcome to this simple simon game!\n");
printf("Now look at the screen !\nThere is a string of number"
"and try to remember them\n");
printf("The number will disppear 1 second later\n");
printf("Now the game began\n");
printf("\ngood luck!\nPress Enter to play\n");
scanf("%c",&another_game);

/* One outer loop iteration is one game*/
do
{
correct = TURE; /* By default indicates correct sequence entered */
counter = 0; /* Initialize count of number of successful tries */
sequence_length=2; /* Initialize length of a digit sequence */
time_taken=clock(); /* Record current time at strart of game */
/* Other code to initialize the game* /

/* Inner loop continues as long as sequences are entered correctly */
while(correct)
{
/* On every third successful try, increase the sequence length */
sequence_length += counter++%3 ==0; /*??????????????*/

/* Set seed to be the number of seconds since Jan 1,1970 */
seed=time(NULL);

now=clock(); /* record start time for sequence */

/* Generate a sequence of numbers and display the number */
srand((int)seed); /* Initialize the random digit */
for(i=1;i<=sequence_length;i++)
printf("%d",rand()%10); /* Output a random digit */

/* Wait one second */
for( ;clock()-now<CLOCKS_PER_SEC; );

/* Now overwrite the digit sequence */
printf("\r"); /* Go to beganning of the line */
for(i=1;i<=sequence_length;i++)
printf(" "); /* Output two spaces */

if(counter==1) /* Only ouput message for the first try */
printf("\nNow you enter the sequence - don't fotget the spaces\n");
else
printf("\r"); /* Back to the beginning of the line */

/* Prompt for the input sequence */

/* Check the input sequence of digits against the original */
srand((int)seed); /* Restart the random sequence */
for(i=1;i<=sequence_length;i++)
{
scanf("%d",number);
if(number!=rand()%10)
{
correct = FALSE;
break;
}
}
printf("%s\n",correct?"Correct!":"Wrong!");
}

/* Calculate total to play the game in second */
time_taken=(clock()-time_taken)/CLOCKS_PER_SEC;

/*Output the game score */
printf("\n\n Your score is %d",--counter*100/time_taken);

fflush(stdin);

/*Check if a new game is requied*/
printf("Do you want to play again(y/n)?\n");
scanf("%c",&another_game);
}while(toupper(another_game) =='Y');
}
数字间不出现空格,且只能给出一次随机数 按回车后出现提示 unhandled expection ....0XC00000005字样
...全文
77 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
图灵狗 2012-10-23
  • 打赏
  • 举报
回复
别忘了加上&符号,改为scanf("%d",&number);这样:

#include<stdio.h> /* For input and output */
#include<ctype.h> /* For toupper() function */
#include<stdlib.h> /* For rand() and srand() functions */
#include<time.h> /* For timr() function */
#define TURE 1 /* Define the symbol TURE */
#define FALSE 0 /* Define the symbol FALSE */
void main()
{
/* Records if anther game is to be played*/
char another_game ='Y';

/* TURE if corrrct sequence entered,FALSE otherwise*/
int correct = FALSE;
/* Number of sequence entered successfully*/

int counter = 0;

int sequence_length=0; /* Number of digits in a sequence */
int i=0; /* Loop conter */
long seed=0; /* Seed value for random number sequence */
int number=0; /* Stores an input digit */
long now =0; /* Stores current time -seed for random values */
long time_taken = 0; /* Time taken for game in seconds */



/* Decribe how the game is played */
printf("Welcome to this simple simon game!\n");
printf("Now look at the screen !\nThere is a string of number"
"and try to remember them\n");
printf("The number will disppear 1 second later\n");
printf("Now the game began\n");
printf("\ngood luck!\nPress Enter to play\n");
scanf("%c",&another_game);

/* One outer loop iteration is one game*/
do
{
correct = TURE; /* By default indicates correct sequence entered */
counter = 0; /* Initialize count of number of successful tries */
sequence_length=2; /* Initialize length of a digit sequence */
time_taken=clock(); /* Record current time at strart of game */
/* Other code to initialize the game* /

/* Inner loop continues as long as sequences are entered correctly */
while(correct)
{
/* On every third successful try, increase the sequence length */
sequence_length += counter++%3 ==0; /*??????????????*/

/* Set seed to be the number of seconds since Jan 1,1970 */
seed=time(NULL);

now=clock(); /* record start time for sequence */

/* Generate a sequence of numbers and display the number */
srand((int)seed); /* Initialize the random digit */
for(i=1;i<=sequence_length;i++)
printf("%d",rand()%10); /* Output a random digit */

/* Wait one second */
for( ;clock()-now<CLOCKS_PER_SEC; );

/* Now overwrite the digit sequence */
printf("\r"); /* Go to beganning of the line */
for(i=1;i<=sequence_length;i++)
printf(" "); /* Output two spaces */

if(counter==1) /* Only ouput message for the first try */
printf("\nNow you enter the sequence - don't fotget the spaces\n");
else
printf("\r"); /* Back to the beginning of the line */

/* Prompt for the input sequence */

/* Check the input sequence of digits against the original */
srand((int)seed); /* Restart the random sequence */
for(i=1;i<=sequence_length;i++)
{
scanf("%d",&number);
if(number!=rand()%10)
{
correct = FALSE;
break;
}
}
printf("%s\n",correct?"Correct!":"Wrong!");
}

/* Calculate total to play the game in second */
time_taken=(clock()-time_taken)/CLOCKS_PER_SEC;

/*Output the game score */
printf("\n\n Your score is %ld",--counter*100/time_taken);

fflush(stdin);

/*Check if a new game is requied*/
printf("Do you want to play again(y/n)?\n");
scanf("%c",&another_game);
}while(toupper(another_game) =='Y');
}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧