标题:函数的返回值
只看楼主
kyletan0808
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2019-4-11
结帖率:50%
 问题点数:0 回复次数:8 
函数的返回值
刚接触C++
求教大家函数的返回值是怎样被主调用函数接收的?

比如 bool f(x,y);

int main()
{
  
  f(m,n);
  int m = ?;
  int n = ??;
  ....
  ....
}



bool f(x,y)
{
  if(x>y){
  return ture;
}else{
  return false;
}
  
}
那么这个bool值应该怎样保存,需要另外在main()中定义一个bool接收它吗?
搜索更多相关主题的帖子: 函数 返回值 int bool 接收 
2019-09-30 13:05
kyletan0808
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2019-4-11
得分:0 
int main()
{
  int m = ?;
  int n = ??;
  f(m,n);
  ....
  ....
}



bool f(x,y)
{
  if(x>y){
  return ture;
}else{
  return false;
}
  
}
那么这个bool值应该怎样保存,需要另外在main()中定义一个bool接收它吗




不好意思顺序弄错了,应该是这样
2019-09-30 13:07
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
你想保存那就 bool result = f(m,n)
你不想保存那就 f(m,n)
2019-09-30 13:22
kyletan0808
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2019-4-11
得分:0 
以下是引用rjsp在2019-9-30 13:22:00的发言:

你想保存那就 bool result = f(m,n)
你不想保存那就 f(m,n)

明白了,感谢不吝赐教! 如果返回值不被接收的话那它所占的内存就会立即被释放对吗?

另外还想请教一下:

bool noNegatives(const int array[],int siz)
{
    bool noduplicate = true;
    int count;
   
   
    for (count = 0; count < siz; count++){
            if(array[count] == array[count + 1]){     // 如果所有输入里面没有重复数,就返回1给主调用函数
               
                noduplicate = false;
               
              }
        }
   
    return noduplicate;

}

以上是我定义的一个函数,目的是比较所有接收到的用户输入(整数),如果没有重复的数组元素就返回1. 但是程序只能比较相邻的两个数如(1 2 3 4 5)。如果是(1 2 1 4 5)就无法返回真实的结果。 有什么提示可以避免这种情况吗?
谢谢!
2019-10-01 23:36
uouo99
Rank: 2
等 级:论坛游民
威 望:3
帖 子:30
专家分:98
注 册:2019-9-30
得分:0 
比较之前先排个序

#include<algorithm>
...
std::sort(array,array+count);
//再执行比较操作
2019-10-02 09:21
kyletan0808
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2019-4-11
得分:0 
以下是引用uouo99在2019-10-2 09:21:35的发言:

比较之前先排个序

#include<algorithm>
...
std::sort(array,array+count);
//再执行比较操作



好方法!
被作业困扰了一个星期终于解放了。。。
感激不尽!
2019-10-02 13:00
踏平怡红院
Rank: 2
等 级:论坛游民
威 望:1
帖 子:29
专家分:23
注 册:2018-6-4
得分:0 
你比较的只是往后一个元素是否重复
2019-10-02 14:17
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:0 
对于返回值这种问题你需要理解一下,一般void类型的都是用来单纯处理数据或者递归搜索,但是其他类型就有可能不一样,比如说int型:
int型如果是用来求值的,比如说
int max(int a,int b)
{
   return a>b?a:b;
}
但是也有用来处理数据但是最终不需要取出答案的,比如说做记忆化搜索
2019-10-04 20:34
SSSVIPshadow
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-10-8
得分:0 
学习下
2019-10-08 12:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497077-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028674 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved