使用C语言编写猜数字问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 07:28:24
一.问题描述:
该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复.玩游戏者通过游戏的提示输入8次来匹配上面所输入的数字.A表示位置正确且数字正确,B表示数字正确而位置不正确.
二.功能要求:
1.本游戏显示这样的菜单:
⑴随机产生数据
⑵用户输入数据
⑶退出游戏
2.游戏成功与否都能返回主菜单
三.算法提示:
1.数据结构:数组
2.用简单的程序设计方法
四.测试数据:
测试数据: 3792
第一次输入: 1234
0A2B
第二次输入: 5678
0A1B
第三次输入: 0867
0A1B
第四次输入: 9786
1A1B
第五次输入: 1794
2A0B

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int aj[4],bj[4];

int operate1(int a)
{
aj[0]=a%10;
aj[1]=a/10%10;
aj[2]=a/100%10;
aj[3]=a/1000;
if(aj[0]!=aj[1]&&aj[0]!=aj[2]&&aj[0]!=aj[3]&&aj[1]!=aj[2]&&aj[1]!=aj[3]&&aj[2]!=aj[3]&&aj[0]!=0&&aj[1]!=0&&aj[2]!=0&&aj[3]!=0)
return 0;
else
return 1;
}

int operate2(int x)
{
if(x>=10000||x<=1000)
{
printf("Wrong data!\n");
return 1;
}
bj[0]=x%10;
bj[1]=x/10%10;
bj[2]=x/100%10;
bj[3]=x/1000;
return 0;
}
void main()
{
int a,flag=1,i,j,x,flag2=1;
int sum,num;
srand( (unsigned)time( NULL ) );
while(flag)
{
a=rand()%9000+1000;
flag=operate1(a);
}
while(num!=4)
{
flag2=1;
printf("Please input the number(1000--10000):\n");