#include<iostream>
#include<time.h>
//#include<cstdlib>//Linux下需包含
using namespace std;
int duibi[4]={0};//随机数储存
int sshu[4]={0};//输入数储存
int js=0;//记录猜对了几个
int main()//主函数
{
char cx;//判断是否继续
cout<<"\t\t\t欢迎来到数字猜谜游戏!!(四位数)\n\n";
void suijishu();
void shuru();
void panduan();
suijishu();
do{
do{//判断是否全对,循环
shuru();
panduan();
}while(js!=4);
cout<<"继续输入y,退出输入n!请输入:";
cin.get();//缓冲
cin.get(cx);
while(cx!='y'&&cx!='n')//判断是否输入正确y/n
{
char ch;
cin.clear();
cin.get(ch);
while(ch!='\n')
cin.get(ch);
cout<<"输入错误!请重新输入:";
cin.get(cx);
}
}while(cx=='y');//判断是否继续
}
void suijishu()//生成随机数
{
srand(time(0));//以时间作为种子
for(int i=0;i<4;)//储存生成随机数
{
duibi[i]=rand()%10;
if(duibi[0]==0)//判断第一个数是否为0
continue;
i++;
}
}
void shuru()
{
int shu;
cout<<"请输入你猜的数字:";
do{
while(!(cin>>shu))//判断是否输入的为数字
{
char ch;
cin.clear();
cin.get(ch);
while(ch!='\n')
cin.get(ch);
break;
}
if((shu%10000)/1000!=0&&shu/10000==0)//是否超过/小于四位数/第一位数是否为零
break;
else //清除错误信息
{
char ch;
cin.clear();
cin.get(ch);
while(ch!='\n')
cin.get(ch);
cout<<"输入错误!请重新输入:";
}
}while(1);
sshu[0]=(shu%10000)/1000;//存入单个数字
sshu[1]=(shu%1000)/100;
sshu[2]=(shu%100)/10;
sshu[3]=shu%10;
cout<<"你输入的数是:";//提示输入的数
for(int i=0;i<4;i++)
cout<<sshu[i];
cout<<endl;
}
void panduan()//判断
{
js=0;
for(int i=0;i<4;i++)//判断对了几个
if(sshu[i]==duibi[i])
js++;
if(js==4)//判断是否全对
cout<<"你很聪明!猜对了!\n\n";
else
cout<<"你猜对了"<<js<<"个!\n"
<<"再来!"<<endl;
}
【C++】猜数字游戏
最新推荐文章于 2024-07-14 20:46:34 发布