【C++】猜数字游戏

3 篇文章 0 订阅
1 篇文章 0 订阅
#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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值