麻烦高手给改一下像这样就行
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define TIME 3
#define N 3
int ws;
int num[N];
void clear()
{
while(getchar() != '\n');
}
int weishu()
{
char c;
while(1)
{
printf("请输入位数(结束Q/q):");
if(scanf("%d", &ws))
{
if(ws >= 1 && ws <= 5)
break;
}
else if((c = getchar()) == 'q' || c == 'C')
return 0;
else
printf("输入错误!请重试.\n");
clear();
}
clear();
return 1;
}
int play()
{
int i, a, b, n;
int in[N];
switch(ws)
{
case 1:a = 0, b = 10;break;
case 2:a = 10, b = 90;break;
case 3:a = 100, b =900;break;
case 4:a = 1000, b = 9000;break;
case 5:a = 10000, b = 90000;break;
}
n = 0;
for(i = 0; i < N; ++i)
n += printf("%d ", num[i] = rand()%b+a);
clock_t now = clock();
while((clock() - now) / CLOCKS_PER_SEC < TIME);
i = n;
while(i--)
putchar('\b');
printf("%*c", n, ' ');
i = n;
while(i--)
putchar('\b');
b = 3;
while(b)
{
printf("请输入:");
for(i = 0; i < N && scanf("%d", &in[i]); ++i);
if(i < N)
{
printf("输入有误!请重试.\n");
clear();
continue;
}
if(b > 0)
{
for(i = 0; i < N; ++i)
if(in[i] != num[i])
{
if(b > 1)
printf("输入错误, 你还有%d次机会:\n", b-1);
break;
}
if(i == N)
return 1;
}
b--;
}
return 0;
}
int main()
{
srand(time(0));
while(weishu())
{
if(!play())
{
clear();
printf("3次机会已用完, 是否重来?(y继续):");
if(getchar() != 'y') break;
else
clear();
}
else
printf("恭喜你!记忆正确.\n");
}
printf("Bye!");
return 0;
}
用C语言编写一个数字记忆游戏 满足以下条件:
1.输入要记忆的数字 位数
2.输入完成后 会出现3个 相应位数的数字
3.这3个数字 再1秒钟后消失
4.输入 文字 和符号时 提示程序错误
5.输入刚才出现 过的 3个数字
6.3次输入的 机会,数字输入正确则继续游戏,3次机会全错 则提示游戏是否继续
7.输入Q或者q时 程序结束