
用C++写一个小程序
要求是输入一个数让电脑猜然后你给出一个判断是大了还是小了,直到电脑猜对为止。(呵呵智力测试)提示(电脑可以不断的猜直到猜对了为止)...
要求是输入一个数让电脑猜然后你给出一个判断是大了还是小了,直到电脑猜对为止。(呵呵智力测试)提示(电脑可以不断的猜直到猜对了为止)
展开
3个回答
展开全部
把刚才发的改进了下,可以猜一个的数的范围为0≤ N ≤4294967295,你不用输入,只需要想一个数字:
#include <cstdlib>
#include <iostream>
#include <string>
#include <ctime>
using namespace std;
int main()
{
srand((unsigned)time(0));
cout << "你想一个数字然后我来猜, 告诉我我猜的是大了(D)还是小了(X).\n";
unsigned low = 0, high = 1;
bool guessed = false;
bool flagh = false, flagl = false;
int guess = 0;
unsigned count = 1;
while(!guessed)
{
if(count == 1)
guess = rand();
else if(flagl && !flagh)
guess = rand() % (4294967295 - low);
else if(flagh && !flagl)
guess = rand() % high;
else if(flagl && flagh)
guess = low + rand() %(high - low + 1);
cout << "\n我猜的是第 " << count << " 个数字是: " << guess << '.' << endl;
cout << "大了(D), 小了(X), 或猜到了(G)? ";
string response;
cin >> response;
if(low == high)
{
cout << "你作弊, 不和你玩了~!" << endl;
return EXIT_FAILURE;
}
switch(toupper(response[0]))
{
case 'D':
high = guess;
flagh = true;
break;
case 'X':
low = guess;
flagl = true;
break;
case 'G':
guessed = true;
break;
default:
cout << "错误的选择!\n";
continue;
}
++count;
}
cout << "\n我猜到了! 你想的数字是: " << guess << '\n';
}
#include <cstdlib>
#include <iostream>
#include <string>
#include <ctime>
using namespace std;
int main()
{
srand((unsigned)time(0));
cout << "你想一个数字然后我来猜, 告诉我我猜的是大了(D)还是小了(X).\n";
unsigned low = 0, high = 1;
bool guessed = false;
bool flagh = false, flagl = false;
int guess = 0;
unsigned count = 1;
while(!guessed)
{
if(count == 1)
guess = rand();
else if(flagl && !flagh)
guess = rand() % (4294967295 - low);
else if(flagh && !flagl)
guess = rand() % high;
else if(flagl && flagh)
guess = low + rand() %(high - low + 1);
cout << "\n我猜的是第 " << count << " 个数字是: " << guess << '.' << endl;
cout << "大了(D), 小了(X), 或猜到了(G)? ";
string response;
cin >> response;
if(low == high)
{
cout << "你作弊, 不和你玩了~!" << endl;
return EXIT_FAILURE;
}
switch(toupper(response[0]))
{
case 'D':
high = guess;
flagh = true;
break;
case 'X':
low = guess;
flagl = true;
break;
case 'G':
guessed = true;
break;
default:
cout << "错误的选择!\n";
continue;
}
++count;
}
cout << "\n我猜到了! 你想的数字是: " << guess << '\n';
}
展开全部
#defin N 100
void mian()
{
int a=0;
while(1)
{
cout << "请输入数据:";
cin >> a;
if(a>N)
{
cout << endl << "太大了!" << endl;
}
else if(a<N)
{
{
cout << endl << "太大了!" << endl;
}
else if(a==N)
{
cout << endl << "完全正确!你太有才了。" << endl;
break;
}
}
}
}
}
void mian()
{
int a=0;
while(1)
{
cout << "请输入数据:";
cin >> a;
if(a>N)
{
cout << endl << "太大了!" << endl;
}
else if(a<N)
{
{
cout << endl << "太大了!" << endl;
}
else if(a==N)
{
cout << endl << "完全正确!你太有才了。" << endl;
break;
}
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
二分法嘛。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询