用C++写一个小程序

要求是输入一个数让电脑猜然后你给出一个判断是大了还是小了,直到电脑猜对为止。(呵呵智力测试)提示(电脑可以不断的猜直到猜对了为止)... 要求是输入一个数让电脑猜然后你给出一个判断是大了还是小了,直到电脑猜对为止。(呵呵智力测试)提示(电脑可以不断的猜直到猜对了为止) 展开
 我来答
书未寻聚1w
2007-03-26 · TA获得超过2650个赞
知道大有可为答主
回答量:843
采纳率:0%
帮助的人:1189万
展开全部
把刚才发的改进了下,可以猜一个的数的范围为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';
}
乐正涵柳3
2007-03-26 · TA获得超过952个赞
知道小有建树答主
回答量:650
采纳率:100%
帮助的人:733万
展开全部
#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;
}

}
}

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
feldspar
2007-03-26 · TA获得超过384个赞
知道小有建树答主
回答量:564
采纳率:0%
帮助的人:0
展开全部
二分法嘛。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式