猜数字游戏问题
#include<stdio.h>
void main()
{
int x; //随机生成数
int n = 0; //输入的数
int s = 0; //输入次数
int a; //完全符合
int b; //放置错误
int g1, s1, b1, q1; //n的各个数位
int g2, s2, b2, q2; //x的各个数位
srand(time(0)); //让随机生成数不重复
x = rand() % 9999;
for (;;)
{
printf("输入四位数字");
scanf_s("%d", &n);
g2 = x % 10;
s2 = x / 10 % 10;
b2 = x / 100 % 10;
q2 = x / 1000;
//输入
int y = 0; //while循环数字
a = 0; //初始化
b = 0; //初始化
if (n == x) //猜的数字和生成随机数一样
{
printf("恭喜!经过%d次尝试,您答对了!\n", s);
break;// exit(0); //结束循环
}
else {//不一样的话 直接拆位
g1 = n % 10;
s1 = n / 10 % 10;
b1 = n / 100 % 10;
q1 = n / 1000;
if (g1 == g2) a++;
if (s1 == s2) a++;
if (b1 == b2) a++;
if (q1 == q2) a++;
if (g1 == s2 || g1 == b2 || g1 == q2) b++;
if (s1 == g2 || s1 == b2 || s1 == q2) b++;
if (b1 == g2 || b1 == s2 || b1 == q2) b++;
if (q1 == g2 || q1 == s2 || q1 == b2) b++;
printf("有%d个数字完全符合,有%d个数字位置错误\n", a, b);
s++;//次数增加
}
}
}
大佬们,一个猜数字的游戏,数字为4位,用户输入后,计算机进行判断,如果猜测的不正确,计算机要告诉用户,用户猜
的数字,其中有几个数字的数值和位置是和正确的数字是一样的,有几个数字的数值和正确的数字一样,但是位置不
一样。
如正确的数字为7258
用户输入1349的时候,计算机弹出提示:有0个数字完全符合,有0个数字位置错误
用户输入1347的时候,计算机弹出提示:有0个数字完全符合,有1个数字位置错误
用户输入7081的时候,计算机弹出提示:有1个数字完全符合,有1个数字位置错误
用户输入2222的时候,计算机弹出提示:有1个数字完全符合,有3个数字位置错误
用户输入8275的时候,计算机弹出提示:有1个数字完全符合,有3个数字位置错误
用户输入7258的时候,计算机弹出提示:恭喜!经过6次尝试,您答对了!
vs2019下C语言
现在程序大部分情况可以正常运行 但是会发生这种情况:
输入四位数字0000
有0个数字完全符合,有0个数字位置错误
输入四位数字1111
有0个数字完全符合,有0个数字位置错误
输入四位数字2222
有0个数字完全符合,有0个数字位置错误
输入四位数字3333
有1个数字完全符合,有3个数字位置错误
输入四位数字4444
有0个数字完全符合,有0个数字位置错误
输入四位数字5555
有0个数字完全符合,有0个数字位置错误
输入四位数字6666
有1个数字完全符合,有3个数字位置错误
输入四位数字7777
有0个数字完全符合,有0个数字位置错误
输入四位数字8888
有2个数字完全符合,有4个数字位置错误
输入四位数字3688
有2个数字完全符合,有3个数字位置错误
输入四位数字
最后一个提示2完全符合 3位置错误
醉了