使用具有返回功能的函数
Using functions with return ability
不知道为什么这不起作用。我没有经常使用返回,但想知道为什么它返回零。
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;
}
相关文章:
- C++:函数外部的超时功能
- 我在 C++ 中创建了一个函数来递归反转字符串,但是之后如何使功能打印一个 endl?
- 设计模式,以避免不必要地添加抽象函数以适应新功能
- 当我链接两个静态C++库时,我可以在两个主函数库中有两个主要功能吗?
- 具有C++迭代器参数的多功能函数
- 错误:调用'strcmp'没有匹配函数(尝试设置显示用户信息功能)
- 我有模板功能.通过使用函数std::for_each,用这个容器中的最大数字替换每个正数
- 是否有一个Windows驱动程序函数可以执行Windows文件api SeFileAttributes的等效功能
- 自定义 {fmt} 格式化函数,具有编译时格式字符串检查功能
- 如何在带有初始值设定项的构造函数中使用 vprintf/cstdarg 功能?
- =删除用户定义的成员功能,除了构造函数,分配运算符C 11
- 如何使用结构内的功能指针调用私有函数
- C 函数调用包装器包含类成员功能作为模板参数
- 您如何在与打开窗口的功能的不同函数中使用Draw函数
- 当使用嵌套类功能时,使用非静态数据成员的使用无效,但是当函数未固定时可以
- 如果我具有调用其其他实例之一的超载函数,它是否被认为是递归功能
- 使用具有返回功能的函数
- 如何在不接触函数本身的情况下暂停和恢复 C++11 std::thread 的功能
- 将带捕获功能的 lambda 传递给模板化函数
- 获取模板功能函数返回类型的功能类型