不确定为什么这不起作用。我没有非常多地使用返回但是想知道为什么它返回零。
using namespace std;
void randgen(int &y);
int doub(int y);
int main()
{
int y, num;
randgen(y);
cout<<num<<endl;
}
void randgen(int y)
{
unsigned seed = time(0);
srand(seed);
y = (rand() % (99-10+1))+10;
num = y;
return num;
}
答案 0 :(得分:0)
在main中,声明一个名为num的变量,它是main函数的本地变量。你永远不会将它作为参数传递给randgen函数。但是,您可以在主函数中打印它。当您在main函数中打印num时,它不会从randgen函数打印num变量,而是从main函数打印num变量。事实上,你真的不需要num。你可以从randgen函数返回y。在使用cout之前还应该将对randgen的调用设置为变量,或者只使用cout&lt;&lt; randgen(y)&lt;&lt; ENDL;
如果您从randgen函数返回一个值,则需要将其从void更改为返回的任何数据类型。你也不能在randgen中使用num,因为它没有被声明。您必须先声明变量才能使用它。
希望这有帮助!
答案 1 :(得分:-1)
num
永远不会在main()
中分配任何值。而不只是randgen(y);
您需要num = randgen( y );
randgen()
被声明为void - 如果你想返回一些东西(在这种情况下是一个随机整数),你需要声明它。
在为y
分配任何值之前,您已将randgen()
作为参数传递给y
。所以你需要为它分配一些东西。 (另一个问题是你永远不会在randgen()
本身使用y
值,所以为什么要先把它传递给... {/ p>
没有必要将生成的值分配给num
然后num
然后返回(除了#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int randgen(int y);
int main()
{
int y, num;
y = 5;
num = randgen(y);
cout<<num<<endl;
}
int randgen(int y)
{
unsigned seed = time(0);
srand(seed);
return (rand() % 90)+10;
}
之外没有在函数中声明)你可以只返回生成的值
这些可能是主要问题。尽管如此,这里的代码版本可以正常工作,并且可以满足您的需求。
{{#each payload as |p|}} {{#if_greater 20 occurrences}}
<tr class="danger">
<td>{{p.date}}</td>
<td>{{p.serial}}</td>
<td>{{p.operator}}</td>
<td>{{p.vehicle}}</td>
<td>{{p.stop}}</td>
<td>{{p.line}}</td>
<td>{{p.zone}}</td>
<td>{{p.occurrences}}</td>
<td>{{p.encrypted}}</td>
</tr>