C ++编写随机函数和参数

时间:2012-12-06 08:12:19

标签: c++ function random parameters

有人可以为我修改整个代码吗?我修改自己但仍然有错误,我想使用功能,并将其称为打印主     #包括     #包括     #包括     使用namespace std;

int addition(int a=(rand()%99),int b=(rand()%99) {
    int r;
    r=a+b;
    return r;
}

int main() {
   int print, a, b;
 print = addition(a, b);
 cout << "this is result of addition" << print;
} 

3 个答案:

答案 0 :(得分:3)

这里有两个问题:

首先,您不要调用srand,这是设置随机种子所必需的(通常是通过srand(time(nullptr))。

其次,行print= int addition(int a,int b);写错了。假设您要使用默认参数,它应该是print = addition();,因为您没有声明该函数,而是调用它。

这将使主要功能如下:

int main() {
    srand(time(nullptr));
    int print;
    print= int addition();
    cout<<"this is result of addition"<<print;
    return 0;
} 

编辑:这假设您实际上想要您的函数具有随机默认参数的行为。这本身似乎是一个糟糕的设计决策,发送调用者生成的随机数可能会更好。这将产生结果函数:

int main() {
    srand(time(nullptr));
    int a = rand()%99, b = rand()%99;
    int print;
    print= int addition(a, b);
    cout<<"this is result of addition"<<print;
    return 0;
} 

另请注意,rand()%99将返回[0,98]范围内的值。

答案 1 :(得分:0)

这一行:

print = int addition(int a, int b);

是胡说八道。你可能想要:

print = addition();

答案 2 :(得分:0)

你有一些语法错误..你的主要变化是:

 int print, a, b;
 std::srand(std::time(0));
 print = addition(a, b);
 cout << "this is result of addition" << print;

修改

无论如何,你可以删除&#39; a&#39;和&#39; b&#39;变量,因为你没有在代码中使用它们。这样,您必须在没有任何参数的情况下调用add:

 print = addition();