⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 猜数字(1)3.0.cpp

📁 可以进行1~100之间的猜数字游戏 还有检错机制在 可以按任何间
💻 CPP
字号:
#include<stdio.h>
#include<string.h>
#include<iostream.h>
#include<stdlib.h>
#include<ctype.h> 
#include<time.h>
#define random(x) (rand()%x)                                                    //产生随机数

long Input_number()                                                              //判断输入的数是否为整数
{
	char number[10];
	long s=0;
continue2: gets(number);
	for(int i=0;i<strlen(number);i++)
		if(!isdigit(number[i]))
		{cout<<"不合法!请重新输入数字:"<<endl;goto continue2;}
	for(int i=0;i<strlen(number);i++)
	{
		s=s*10+(number[i]-48);
	}
	return s;
} 

int Judge_letter(char *answer)                                                  //判断输入的字母是否合法
{
	while(strlen(answer)!=1)
	{
		cout<<"不合法!请重新输入字母:";
		cin>>answer;
	}
	if(*answer=='y')return 1;
	else
		if(*answer=='n'){ return 0;}
	else
	{
		cout<<"不合法!请重新输入字母:";
		cin>>answer;
		Judge_letter(answer);
	}
}

int number_circulate(int check_letter)                                          //确定数的范围
{
	int i,x,number,a;
	int number_copy1,number_copy2;
	char answer[10];
	while(check_letter!=0)
	{
		cout<<"您只有5次机会."
			<<"请输入1~100之间的一个整数:\n"<<endl;
		srand((int)time(NULL));
		x=random(100);
		number_copy1=0,number_copy2=100;
		
		for(i=4;i>0;i--)
		{
			number=Input_number();
			while(number<=number_copy1||number>=number_copy2)                   //判断数是否在范围内
			{
				cout<<"输入的数不在范围之内,请重新输入:\n"<<endl;
				number=Input_number();
			}
		                          
			if(number>x)
			{
				cout<<"输入的数不正确,还有"<<i<<"次机会,现在的范围是:"
					<<number_copy1<<"~"<<number<<endl<<endl;
				number_copy2=number;
			}
			else
				if(number<x)
				{
					cout<<"输入的数不正确,还有"<<i<<"次机会,现在的范围是"
						<<number<<"~"<<number_copy2<<endl<<endl;
					number_copy1=number;
				}
			else
			{
				cout<<"恭喜您,回答正确!"<<endl;goto continue1;
			}
		}
		number=Input_number();
		if(number!=x)
			cout<<"对不起,您已经没有机会了!"<<endl;
		else
			cout<<"恭喜您,回答正确!"<<endl;
		cout<<"正确答案是:"<<x<<endl;
continue1:cout<<"想再来一次吗?y/n"<<endl;
		cin>>answer;
		check_letter=Judge_letter(answer);
	}
	return 1;
}

void main()
{
	int check;
	char answer[10];
    cout  <<"                  =================================="<<endl;
    cout  <<"                        欢迎使用猜数字游戏!        "<<endl;
    cout  <<"                       Made By LWW on 24/10/2008    "<<endl;
    cout  <<endl;
    cout  <<"游戏说明:系统将随机给出一个0~100之间的整数,您的任务就是猜出这个数!"<<endl;
	cout  <<"          错误输入时,系统将会出现提示!"<<endl;
    cout  <<"                  =================================="<<endl;
   	putchar('\n');
	cout  <<"                          是否要开始游戏:(y/n)"<<endl;
	cout  <<"在此输入:";
	gets(answer);
	putchar('\n');
	check=Judge_letter(answer);                                                 //判断输入的字母是否合法
	number_circulate(check);	                                                //确定数的范围
	cout<<"游戏结束!谢谢您的使用!"<<endl;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -