C++入门猜数字游戏

未入门新手,用c++编写猜数字游戏,猜中了可以继续猜下一个数字,10次猜不中就重来一次猜数字。不知道怎么加进去,求指导。

#include <iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
int main(void)
{
    int n,num,count=1;
    srand(time(0)); 
    num=rand()%1000;
    do
    {
        cout<<"猜一个数:";
        cin>>n;
        if(n==num)
            break;
        else if(n>num)
            cout<<"大了!"<<endl;
        else
            cout<<"小了!"<<endl;
        count++;
    }while(true);
    cout<<"历经"<<count<<"次,猜对了。"<<endl;
    return 0;
}
阅读 2.9k
2 个回答

直接在 do while 里输出,如果猜对了(n == num),输出: cout<<"历经"<<count<<"次,猜对了。"<<endl;,然后,退出,就像下面一样:

    #include <iostream>
    #include<ctime>
    #include<cstdlib>
    using namespace std;
    
    int main(void)
    {
        int n,num,count=1;
        srand(time(0));
        num=rand()%1000;
        do
        {
            cout<<"猜一个数:";
            cin>>n;
            if(n==num) {
                cout<<"历经"<<count<<"次,猜对了。"<<endl;
                break;
            } else if(n>num)
                cout<<"大了!"<<endl;
            else
                cout<<"小了!"<<endl;
            count++;
        }while(true);
    
        return 0;
    }

更新:可以猜无数轮,但每轮最多猜 10 次
注意:未处理输入失败的情况

#include <cstdlib>
#include <ctime>
#include <iostream>

using namespace std;

void guess() {
  srand(time(0));
  int num = rand() % 1000;
  int count = 1;

  while (true) {
    cout << "猜一个数:";
    int n;
    cin >> n;
    if (n == num) {
      cout << "历经" << count << "次,猜对了。" << endl;
      return;
    }
    if (count == 10) {
      cout << "已经猜了 10 次,游戏失败。" << endl << endl;
      return;
    }
    if (n > num)
      cout << "大了!" << endl;
    else
      cout << "小了!" << endl;
    count++;
  }
}

int main() {
  for (;;)
    guess();
  return 0;
}

外面加个变量表示猜对还是猜错,n == num时设置为true,count >= 10时break且设置为false。

根据这个变量输出成功或失败。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏