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;
}
}
如果程序或代码块有什么不足的地方 请各位大佬们海涵 欢迎在评论区下方留言.