C ++需要帮助,随机切换语句

时间:2017-05-24 22:02:18

标签: c++

我正在写一个类似于算命先生的代码但是我的switch语句有些问题。执行时,代码打印出相同的消息,并且不会选择一个像它应该的随机案例!有人可以帮帮我吗!谢谢! 继承我的代码

#include<iostream>
#include<time.h>
#include<stdlib.h>

using namespace std;

void printGreeting(); // function prototype

int main()
{
    int choice;
    printGreeting();
    cout << "Would you like to see your fortune?" << endl;
    cout << "Press 1 to see your fortune or 2 if you don't!" << endl;
    cin >> choice;

    if (choice == 1)
    {
        cout << "Great! Your fortune is: ";
        // Function to generate random number
        void rand1();
        srand(time(NULL));
        int MAX_NUM;
        MAX_NUM = 5;
        int random = rand() % MAX_NUM;
        cout << random << endl;

        int selection;
        selection = 5;

        switch (selection)
        {
            case 1:
                cout << "Change can hurt, but it leads a path to something better!";
                break;
            case 2:
                cout << "If you have something good in your life don't let it go!";
                break;
            case 3:
                cout << "You're in for a treat today.";
                break;
            case 4:
                cout << "Land is always on the mind of a flying bird";
                break;
            case 5:
                cout << "A dream you have will come true";
                break;
        }

        return 0;
    }
    else if (choice == 2)
    {
        cout << "Okay goodbye!" << endl;
    }
}

// Prints greeting message
void printGreeting() // function header
{
    cout << "Hello! Welcome to your fortune teller!" << endl; // function body
}

2 个答案:

答案 0 :(得分:0)

切换selection变量,该变量在切换本身之前显式设置为5。考虑按random变量进行切换。

答案 1 :(得分:0)

因为selection = 5;

您想要选择selection,其随机值介于1 - 5之间,对吗?