#include
#include
#include
int random2(int maxlim);
int judgewin(char h1,char h2);
void disphand(char h);
void main()
{
char man,computer;
char wantplay;
srand((unsigned)time(NULL)); /*重置随机数序列*/
printf("猜 拳\n");
do
{ /*请你出拳*/
while(1)
{
printf("您出什么拳?(1石头 2剪刀 3布):");
man=getchar();
if(man<'1'||man>'3')
printf("您出的不是拳!\n");
else
break;
}
printf("\n您出的是"); /*显示您出的拳*/
disphand(man);
printf("\n");
computer=random2(3)+'1'; /*电脑出拳*/
printf("我出的是"); /*显示电脑出的拳*/
disphand(computer);
printf("\n");
switch(judgewin(man,computer)) /*判断胜负*/
{
case 0: /*case和0之间应该有空格,下同*/
printf("不分胜负\n"); /*平了*/
break;
case 1: /*您赢了*/
printf("哦!我输了\n");
break;
case 2: /*电脑赢了*/
printf("哈哈!我赢了\n");
break;
}
printf("还玩吗?(Y继续,其他退出)");
wantplay=getch(); /*已修改,不能使用getchar()函数,原因见教材128~137页*/
printf("\n\n");
}
while(wantplay=='y'||wantplay=='Y');
}
int random2(int maxlim) /*产生0到maxlim之间的随机数*/
{
float number;
number=((float)rand()/RAND_MAX)*maxlim;
return((int)number);
}
int judgewin(char h1,char h2) /*判断h1和h2的胜负*/
{
if(h1==h2)
return 0;
else if((h1=='1'&&h2=='2') /*h1出石头,h2出剪刀*/
||(h1=='2'&&h2=='3') /*或者h1出剪刀,h2出布*/
||(h1=='3'&&h2=='1')) /*或者h1出布,h2出石头*/
return 1;
else
return 1;
}
void disphand(char h) /*根据h的值显示"石头","剪子","不"*/
{
switch(h)
{
case'1':
printf("石头");
break;
case'2':
printf("剪子");
break;
case'3':
printf("布");
break;
}
}
void main()
->
int main()
wantplay=getch();
->
wantplay=getchar();
这样就可以。