2

有人可以为我编写修改过的整个代码吗?我修改了自己的但仍然有错误,我想使用函数并将其调用到打印 main #include #include #include using 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;
} 
4

3 回答 3

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] 范围内的值。

于 2012-12-06T08:17:05.323 回答
0

这一行:

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

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

print = addition();
于 2012-12-06T08:17:00.783 回答
0

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

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

编辑

无论如何,您可以删除“a”和“b”变量的声明,因为您没有在代码中使用它们。这样,您必须在没有任何参数的情况下调用添加:

 print = addition();
于 2012-12-06T08:18:40.287 回答