/*
循环:即重复,当某些语句要出现执行多次时,就会把这
些语句放到循环的大括号内。
循环体:是循环大括号内的所有语句的集合。
循环的次数,往往会定义一个整型变量来控制,叫循环变量。
循环变量的三个必要表达式:
1.初值,是赋值语句,如:x=1
2.终限,是关系或关系加逻辑表达式,如:x<=100
3.步长,是一个复合赋值语句(会改循环变量的值),如:x++,或x+=2
循环变量的三个表达式应该怎么组合:
1.当初值小于终限,那么,关系表达式应该用小于或
小于等于,步长用+=或++
2.当初值大于终限,那么,关系表达式应该用大于或
大于等于,步长用-=或--
当循环终限为假时,结束循环,循环变量的值为"比终限大"或"比终限小"
for循环变量的三个表达式和循环体的执行次序:
1.初值
2.终限(为真时执行循环体,为假时结束循环(即循环右大括号之后))
3.循环体
4.步长(之后还会回到终限,判断真假)
*/
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void main()
{
int jiqi,ren;
int n;
char op;
srand((unsigned)time(NULL));//确保rand()每次产生的随机数是不一样的
for(op='y';op=='y'||op=='Y';)
{
jiqi=rand()%3+1;
n=0;
printf("请出拳(1.石头;2.剪刀;3.布):");
re:n=scanf("%d",&ren);
if(n!=1||ren<1||ren>3)
{
printf("出拳有误,请重输:");
fflush(stdin);
goto re;
}
if(ren==1)
{
printf("
你出的是 石头
");
if(jiqi==1)
printf("电脑出的是 石头,平手
");
else if(jiqi==2)
printf("电脑出的是 剪刀,你赢了
");
else
printf("电脑出的是 布,你输了
");
}
else if(ren==2)
{
printf("
你出的是 剪刀
");
if(jiqi==1)
printf("电脑出的是 石头,你输了
");
else if(jiqi==2)
printf("电脑出的是 剪刀,平手
");
else
printf("电脑出的是 布,你赢了
");
}
else
{
printf("
你出的是 布
");
if(jiqi==1)
printf("电脑出的是 石头,你赢了
");
else if(jiqi==2)
printf("电脑出的是 剪刀,你输了
");
else
printf("电脑出的是 布,平手
");
}
printf("
是否继续出拳(y/n):");
oo:fflush(stdin);
op=getchar();
if(op=='n'||op=='N')
break;
else if(op=='y'||op=='Y')
continue;
else
{
printf("
只许输入y或n :");
goto oo;
}
}
printf("
谢谢惠顾,欢迎下次再来!
");
}