|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 苹果沃珂 于 2013-8-19 17:22 编辑
<苹果沃克:题目与方案分析,查看>
- #include <time.h>
- #include <stdlib.h>
- #include <stdio.h>
- int GuessPrice();
- int main()
- {
- char str[] ="\n ========================================================================\
- \n OK Congratulations! \
- \n Q:退出“价格猜猜猜” C:再玩一次 \
- \n ========================================================================\n";
- char ch = 'C';
- while (ch != 'Q'&&ch != 'q')
- {
- GuessPrice();
- puts(str);
- scanf("%c",&ch);
- scanf("%*[^\n]");
- scanf("%*c");
- if (ch != 'Q'&&ch != 'q')
- {
- printf("\n\t>>>>“价格猜猜猜”正在启动,精彩马上呈现>>>>>>>>\n");
- }
- }
- return 0;
- }
- int GuessPrice()
- {
- srand( time(NULL) );
- int nPrice = rand()%1000+1; //目标价格[1,1000]
- int nYou = 0; //您竞猜价格
- int nCnt = 1; //竞猜次数
- int nSimly = 0;
- int nMin = nPrice-(nPrice%4+1)*131; //竞猜范围下限
- int nMax = nPrice+(nPrice%3+1)*187; //竞猜范围上限
- printf("\n\t==欢迎来到价格猜猜猜==\n");
- time_t start_time = time(NULL); //获取当前时间
- do
- {
- if (nMin <0)
- {
- nMin = 1;//
- }
- printf("\n第%d次竞猜:范围[%d, %d],建议(%d),输入您的竞猜价格: ", nCnt,nMin,nMax,(nMax+nMin)/2);
- scanf("%d",&nYou);
- scanf("%*[^\n]");
- scanf("%*c");
- if (nYou == (nMax+nMin)/2)
- {
- nSimly++; //统计跟随提示输入的次数
- }
- if (nYou == nPrice)
- {
- time_t end_time = time(NULL);
- double diff_time = difftime(end_time,start_time);
- printf("\n\t成功价格:%d,竞猜用时:%gs,竞猜次数:%d,跟随提示输入次数:%d",nPrice,diff_time,nCnt,nSimly);
- break;
- }
- else if (nYou < nPrice)
- {
- printf("\t低了...");
- if (nYou<nMin)
- {
- printf("\n\t爷,您是来砸场子的吧(提示最小值%d,您还输入%d) ...",nMin,nYou);
- }
- else
- {
- nMin = nYou; // 修改Min,缩小范围
- }
- printf("\t\n");
- }
- else
- {
- printf("\t高了...");
- if (nYou>nMax)
- {
- printf("\n\tExcuse,我可以理解为您是存心来捣乱的吗?(提示最大值%d,您还输入%d) ... ",nMax,nYou);
- }
- else
- {
- nMax = nYou; // 修改Max,缩小范围
- }
- printf("\t\n");
- }
- nCnt ++;
- } while (1);
- return nCnt;
- }
复制代码
|
-
价格猜猜猜-效果图
|