1.1

#include <iostream>
#include <string>
using namespace std;

int main(void)
{
    int user_guess;             //用户的猜的数字
    int num_tries;              // 总的猜测数
    int num_right;              // 总的正确数
    char user_answer;           //用户回答是否再猜一次(同一数列中)
    char user_answer_try;       //是否尝试下一组数列?

    int tries_cnt = 0;          //循环内用户猜的次数,每次猜新数列要清零

    bool next_seq = true;       // 显示下一组数列
    bool go_for_it = true;      // 用户想继续猜一次
    bool true_or_not = false;   // 用户是否猜对

    const int max_tries = 3;    //总猜测次数 3次

    const int size_18 = 18;      //容器,常数18
    const int max_seq = 6;       // 最多猜6次,6个数列

    int elem_seq[size_18] = {
        1, 2, 3,    // Fibonacci数列
        3, 4, 7,    // Lucas数列
        2, 5, 12,   // Pell数列
        3, 6, 10,   // Triangular数列
        4, 9, 16,   // Square数列
        5, 12, 22   // Pentagonal数列
    };                                  //初始化容器(数组) 18+1个,末尾是0
    string seq_names[max_seq] = {
        "Fibonacci",
        "Lucas",
        "Pell",
        "Triangular",
        "Square",
        "Pentagonal"
    };                           //这是声明了个字符串数组?

    int true_size = 0;           //用来做数组的下标


    // 用户想要继续猜某个数列
    while (next_seq == true && true_size < size_18)
    {

        cout  << "\t\t"   << "这个数列的前两个数字: "
                    << elem_seq[true_size]
                    << ", "
                    << elem_seq[true_size+1]
                    << endl;                          // 显示数列的前两个数字


        cout  << "\t\t"   << "下一个数字是什么?"
                << "\t\t"
             << endl;

        tries_cnt = 0;

        next_seq = true;

        go_for_it = true;

        true_or_not = false;


                while(!true_or_not && go_for_it && (tries_cnt < max_tries))  // 用户所猜不正确 && 用户想要再猜一次
            {   num_tries++;
                tries_cnt++;
                 if(tries_cnt>1){cout  << "\t\t"   << "再尝试一个数字吧"<<endl;}
                 printf( "\t\t");
                cin     >> user_guess;



                        if(user_guess == elem_seq[true_size+2])     //  如果答案正确
                    {
                        num_right++;
                        cout << '\n'
                             << "\t\t" << "很棒,答对了, "
                            << '\n'
                            << endl
                            << "\t\t"
                            << elem_seq[true_size+2]
                            << " 便是 "
                            << seq_names[true_size/3]
                            << " 数列的下一个数字"
                            << endl
                            << endl;

                        true_or_not = true;
                    }
                        else{                                // 如果答案错误
                            switch (tries_cnt)
                                    {
                                        case 1:
                                        cout << "\t\t"  << "哈哈,你猜的很准但不对!";
                                        break;
                                        case 2:
                                        cout  << "\t\t"  << "抱歉,你错了两次啦!" ;
                                        break;
                                        default:
                                        cout << "\t\t" << "哈,它看起来很难,错三次了,不是吗?" << endl;
                                        break;

                                    }

                                            if(tries_cnt<3){
                                                    cout << "\t\t"  << "还想继续吗?(y/n):" << endl;
                                                     printf( "\t\t");
                                                    cin >> user_answer;
                                                    }

                                            if(tries_cnt==3){cout  << endl;
                                                            user_answer=1;
                                                            }


                                                        if(!(user_answer == 'Y' || user_answer == 'y'))

                                                                go_for_it = false;

                            }
            }



                cout << "\t\t"       << "想试试下一个数列吗? (y/n)?"
                            << endl;
                 printf( "\t\t");

                cin >> user_answer_try;

                            if(!(user_answer_try == 'Y' || user_answer_try == 'y'))

                              {

                               next_seq = false;
                              }
                            else
                                true_size += 3;
    }
                                                            // 外层while结束
if(!(user_answer_try == 'n' || user_answer_try == 'n'))
{
    cout << "你的输入有误,本程序即将退出";
}
    return 0;
}

 

版权声明:
作者:maple
链接:https://www.maplezeroz.com/?p=141
来源:我的学习笔记
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
1.1
#include <iostream> #include <string> using namespace std; int main(void) { int user_guess; //用户的猜的数字 ……
<<上一篇
1.2
下一篇>>