制作一个随机数稀有系统,它不起作用

时间:2012-12-04 04:42:48

标签: c++

  

可能重复:
  How do I select a range of values in a switch statement?
  c++ cannot appear in a constant-expression|

我要做的是生成一个随机数,并根据数字的值写出“Common”,“Rare”或“Very Rare”。有人可以帮帮我吗?

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

using namespace std;

int main()
{
    int a;
    srand(time(0));
    a = 1 + (rand()%10);

    switch (a)
    {
        case (a >= 0 && a <= 5):
        cout << "Common";
            break;

        case (a >= 6 && a <= 8):
        cout << "Rare";
            break;

        case (a >= 9 && a <= 10):
        cout << "Very rare";
            break;

        default:
            break;
    }

    return 0;
}

2 个答案:

答案 0 :(得分:4)

您不能在开关案例中使用比较运算符。试试这个:

 switch (a)
    {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        cout << "Common";
            break;

        case 6:
        case 7:
        case 8:
        cout << "Rare";
            break;

        case 9:
        case 10:
        cout << "Very rare";
            break;

        default:
            break;
    }

答案 1 :(得分:2)

如果你想检查范围我建议你使用if语句来避免使用所有可能值的列表:

if (a >= 0 && a <= 5)
    cout << "Common";
else if (a >= 6 && a <= 8)
    cout << "Rare";
else if (a >= 9 && a <= 10)
    cout << "Very rare";