使用具有返回功能的函数

Using functions with return ability

本文关键字:功能 函数 返回      更新时间:2023-10-16

不知道为什么这不起作用。我没有经常使用返回,但想知道为什么它返回零。

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;
}

在main中,你声明一个名为num的变量,它是main函数的局部变量。您永远不会将其作为参数传递给 randgen 函数。但是,您可以在主函数中打印它。当您在主函数中打印 num 时,它不是从 randgen 函数打印 num 变量,而是从主函数打印 num 变量。事实上,你并不真正需要 num。你可以从 randgen 函数中返回 y。在使用 cout 之前,您还应该将 randgen 的调用设置为变量,或者只使用 cout <<randgen(y( <<endl;

如果要从 randgen 函数返回值,则需要将其从 void 更改为返回的任何数据类型。您也不能在 randgen 中使用 num,因为它没有声明。必须先声明变量,然后才能使用它。

希望这有帮助!

num永远不会在main()中分配任何值。您不仅需要randgen(y); num = randgen( y );

randgen()被声明为 void - 如果你想返回一些东西(在本例中是一个随机整数(,你需要这样声明它。

在为y分配任何值之前,将作为参数传递给randgen()。所以你需要给它分配一些东西。(另一个问题是,你从不使用randgen()本身的值y,那么为什么要首先传递它......

没有必要将生成的值分配给y然后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;
}
相关文章: