帮忙改一C语言的猜数字游戏的程序〔代码已给出〕!!!

2025-03-06 21:27:18
推荐回答(1个)
回答1:

#include
#include
#include
#include
int i,j=1;
int scores[6];
void main()
{
char control='\0';
int rand1,guess,score;
printf("开始游戏吗 ?(Y?N)");
control=getchar();
while(control!='y'&&control!='Y'&&control!='n'&&control!='N')//屏蔽其他按键
{
printf("无效字符!开始游戏吗 ?(Y?N)");
fflush(stdin);
control=getchar();
printf("%c",control);
}
while((control=='y')||(control=='Y'))
{
system("cls");
srand((unsigned)time(NULL));
rand1=rand()%10+1;
//printf("%d",rand1);
for(i=0;i<20;i++)
{
printf("请输入你猜的数:");
scanf("%d",&guess);
if(guess>rand1)printf("大啦!\n");
else if(guess else
{
printf("恭喜>:猜对了\a\n");//响铃\a
break;
}
i++;
}
i+=1;
if(i==1)
{
score=100;
scores[0]++;
}
else
if(i>=2&&i<=3)
{
score=90;
scores[1]++;
}
else
if(i>=4&&i<=6)
{
score=80;
scores[2]++;
}
else
if(i>=7&&i<=10)
{
score=70;
scores[3]++;
}
else
if(i>=11&&i<=15)
{
score=60;
scores[4]++;
}
else
{
score=0;
scores[5]++;
}
printf("第%d次得分是:%d\n",j,score);
scores[7]+=score;
j++;
printf("是否继续(Y?N)\n");
fflush(stdin);//请输入缓冲区
control=getchar();
while(control!='y'&&control!='Y'&&control!='n'&&control!='N')
{
printf("无效字符!只能按y或Y,n或N是否继续(Y?N)\n");
fflush(stdin);
control=getchar();
printf("%c",control);
}

}
system("cls");//清屏
printf("+++++++++++++++-----------------以下是得分情况:---------------*************\n");
for(i=0;i<5;i++)
{
printf("+++++++++++++++------------------得%d分%d次:------------------*************\n",10*(10-i),scores[i]);
}
printf("+++++++++++++++------------------得%d分%d次:------------------*************\n", 0,scores[5]);

}