c语言实现石头剪刀布
c语言基础练习:石头剪子布
讲解
1.导入头文件
需要使用的头文件:
#include<stdio.h>
#include <stdlib.h> //srand、rand函数
#include <time.h> //time(NULL)函数
2.接收用户输入的值
代码如下(示例):
int me;
me=0; //初始化变量
printf("请出拳:");
scanf_s("%d", &me);
判断用户输入是否正确
.
int me;
me=0; //初始化变量
while (me < 1 || me>3)
{
printf("请出拳:",);
scanf_s("%d", &me);
//判断出拳是否正确
if (me < 1 || me >3)
{
printf("输入错误只能选择【1,2,3】\n");
printf("\n");
}
}
电脑生成
int ai;
ai=0; //初始化变量
ai = rand() % 3; //产生1、2、3之中任意一个数
srand(time(NULL)); //随机
判断输赢平
提示:continue:结束当前语句
int sheng , bai;
sheng=bai=0;
//判断平局
if (me == ai)
{ //平局
printf("这一局平手\n");
printf("\n");
continue;
}
//判断输赢
switch (me)
{
case 1:
printf("您出的是【石头】 ");
if (ai == 2)
{
sheng++;//胜利次数+1
printf("电脑出的是【剪刀】您赢了\n");
printf("\n");
}
else
{
bai++;//输的次数+1
printf("电脑出的是【布】您输了\n");
printf("\n");
}
break;
case 2:
printf("您出的是【剪刀】 ");
if (ai == 3)
{
sheng++;//胜利次数+1
printf("电脑出的是【布】您赢了\n");
printf("\n");
}
else
{
bai++;//输的次数+1
printf("电脑出的是【石头】您输了\n");
printf("\n");
}
break;
case 3:
printf("您出的是【布】 ");
if (ai == 1)
{
sheng++;//胜利次数+1
printf("电脑出的是【石头】您赢了\n");
printf("\n");
}
else
{
bai++;//输的次数+1
printf("电脑出的是【剪刀】您输了\n");
printf("\n");
}
break;
}
五局
int ju;
ju=0;
for (ju = 0; ju < 5; ju++)
{
...
}
输出结果
printf("\n");
printf("\t【结果】\n");
printf("\n");
if (sheng - bai > 0)
{
printf("您赢了");
}
else if (sheng - bai == 0)
{
printf("平手");
}
else
{
printf("您输了");
}
printf("\n");
printf("\t您的成绩:%d胜 %d败 %d平!\n\n", sheng, bai, 5 - sheng - bai);
判断用户是否再来一局
int xuan;
do
{
...
printf("请选择再来一局【0】结束游戏【随便输入】\n");
scanf_s("%d", &xuan);
} while (xuan == 0);
全代码
#include <stdio.h>
#include <stdlib.h> //srand、rand函数
#include <time.h> //time(NULL)函数
int main()
{
int ju, ai, me, sheng, bai, xuan;
srand(time(NULL)); //随机
do {
sheng = bai = ai = me = 0;
//初始化值
for (ju = 0; ju < 5; ju++)
{
//表示未出拳
me = 0;
//电脑出拳
ai = rand() % 3; //产生1、2、3之中任意一个数
//用户出拳
while (me < 1 || me>3)
{
printf("\t【第%d局】\n请出拳:", ju + 1);
scanf_s("%d", &me);
//判断出拳是否正确
if (me < 1 || me >3)
{
printf("输入错误只能选择【1,2,3】\n");
printf("\n");
}
}
//判断平局
if (me == ai)
{ //平局
printf("这一局平手\n");
printf("\n");
continue;
}
//判断输赢
switch (me)
{
case 1:
printf("您出的是【石头】 ");
if (ai == 2)
{
sheng++;
printf("电脑出的是【剪刀】您赢了\n");
printf("\n");
}
else
{
bai++;
printf("电脑出的是【布】您输了\n");
printf("\n");
}
break;
case 2:
printf("您出的是【剪刀】 ");
if (ai == 3)
{
sheng++;
printf("电脑出的是【布】您赢了\n");
printf("\n");
}
else
{
bai++;
printf("电脑出的是【石头】您输了\n");
printf("\n");
}
break;
case 3:
printf("您出的是【布】 ");
if (ai == 1)
{
sheng++;
printf("电脑出的是【石头】您赢了\n");
printf("\n");
}
else
{
bai++;
printf("电脑出的是【剪刀】您输了\n");
printf("\n");
}
break;
}
}
printf("\n");
printf("\t【结果】\n");
printf("\n");
if (sheng - bai > 0)
{
printf("您赢了");
}
else if (sheng - bai == 0)
{
printf("平手");
}
else
{
printf("您输了");
}
printf("\n");
printf("\t您的成绩:%d胜 %d败 %d平!\n\n", sheng, bai, 5 - sheng - bai);
printf("请选择再来一局【0】结束游戏【随便输入】\n");
scanf_s("%d", &xuan);
} while (xuan == 0);
}