c++ 猜数游戏

   c++猜数游戏

猜数游戏就是利用计算机产生随机数,然后由操作者进行猜测。并且通过提示语句帮助操作者进行猜数,要求每次运行程序电脑给出的数值都不一样。

下面的程序就是猜数游戏代码块(完整的程序在帖子末尾) :

首先是头文件 :

#include <iostream>

#include <cstdlib>

#include <cstring>

还有一个头文件 <ctime> 用来生成随机函数 :

#include <ctime>

 然后是命名空间 :

using namespace std;

宏定义变量 MAXN 的值为10 :

#define MAXN 10

接下来是主程序 :

int main()
{
    
	int label;

这里定义变量 count 来计次 :

	memset( character, 0, sizeof( character ) );

goto 语句跳至此处 :

	label:

memset 函数把数组 character 的元素全部赋值为 0 ( 这段代码可省略为 : char character[MAXN] = {}; ) :

	memset( character, 0, sizeof( character ) );

声明随机种子 如果不声明 则每次调用时生成的随机数都一样 :

	srand(time(0));

百分号后面的取值范围可随意改动 :

	answer = rand()%1000;
count = 0;
	
	while( true )
	{
	    cout << "请输入一个1到1000之间的数 : ";
	    
		cin >> number;
		
		cout << endl; 
		
		if( number == answer )
		{

break语句跳出当前循环 :

		    break;
}	
		
		else if( number > answer )
		{
			cout << "你输入的数字有点大 , 请输小点儿 。";
			
			cout << endl; 
			
			cout << endl;
		}
		
		else if( number < answer )
		{
			cout << "你输入的数字有点小 , 请输大点儿 。";
			
			cout << endl;
			
			cout<<endl; 
		}

当没猜对时, 每错一次, 计次加一 :

		count++;                
		 
	}

break 语句跳至此处 :

    cout << "你用了" << count;

goto语句指明前往地点 :

goto label;                            
	}

cout << "次答对了。";
	
	cout << endl;
	 
	cout << endl;
	
	count = 0; 
	
	cout << "你想再来一次吗 ? 想请输入 yes , 不想请输入 no 。" << endl;
	
	mark:
		
	cin >> character;
	
	if( ( character[0] == 'y' || character[0] == 'Y' ) && ( character[1] == 'e' || character[1] == 'E' ) && ( character[2] == 's' || character[2] == 'S' ) )
	{
else if( ( character[0] == 'n' || character[0] == 'N' ) && ( character[1] == 'o' || character[1] == 'O' ) )
	{
	    return 0;	
	}
	 
	else
	{
		cout << "输入的不正确 , 请再输一次 :";	 
		
		goto mark;
	}
} 

以下是完整版程序 :

#include <iostream>

#include <cstdlib>

#include <cstring>

#include <ctime>                 

using namespace std;

#define MAXN 10			

int main()
{
    
	int label;
		
	int mark, count;
	
	int number, answer;
	
	char character[MAXN];
	
	label:                      
	
	memset( character, 0, sizeof( character ) );	 
	
	srand(time(0));             
	
	answer = rand()%1000;            
	
	count = 0;
	
	while( true )
	{
	    cout << "请输入一个1到1000之间的数 : ";
	    
		cin >> number;
		
		cout << endl; 
		
		if( number == answer )
		{
		    break;
		}	
		
		else if( number > answer )
		{
			cout << "你输入的数字有点大 , 请输小点儿 。";
			
			cout << endl; 
			
			cout << endl;
		}
		
		else if( number < answer )
		{
			cout << "你输入的数字有点小 , 请输大点儿 。";
			
			cout << endl;
			
			cout<<endl; 
		}
		
		count++;                
		 
	}
	
	cout << "你用了" << count;		
	
	cout << "次答对了。";
	
	cout << endl;
	 
	cout << endl;
	
	count = 0; 
	
	cout << "你想再来一次吗 ? 想请输入 yes , 不想请输入 no 。" << endl;
	
	mark:
		
	cin >> character;
	
	if( ( character[0] == 'y' || character[0] == 'Y' ) && ( character[0] == 'e' || character[0] == 'E' ) && ( character[0] == 's' || character[0] == 'S' ) )
	{
		goto label;                            
	}
	
	else if( ( character[0] == 'n' || character[0] == 'N' ) && ( character[0] == 'o' || character[0] == 'O' ) )
	{
	    return 0;	
	}
	 
	else
	{
		cout << "输入的不正确 , 请再输一次 :";	 
		
		goto mark;
	}
} 

 

如果程序或代码块有什么不足的地方 请各位大佬们海涵​​​​​​​ 欢迎在评论区下方留言.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值