迷砖00 发表于 2021-3-25 23:37:15

C++

在自定义函数时,如果出现需要返回多个值,应该如何解决?或者有什么替代的方法?
比如说自定义一个比较大小的函数(如比较两个数),想要同时得到比较完成后的两个数。
求帮忙,谢谢

人造人 发表于 2021-3-26 00:00:10

用结构体进行打包

人造人 发表于 2021-3-26 00:04:29

#include <iostream>

struct input_t {
    int a, b;
};

input_t get_input(std::istream &is) {
    input_t i;
    is >> i.a >> i.b;
    return i;
}

int main() {
    input_t i = get_input(std::cin);
    std::cout << i.a << std::endl << i.b << std::endl;
    return 0;
}

jackz007 发表于 2021-3-26 01:41:38

      利用指针传递参数,想返回多少个值都能办到
#include <stdio.h>

void foo(int * a , int * b , int * c)
{
      int t             ;
      if(* a > * b) {
                t = * b   ;
                * b = * a ;
                * a = t   ;
      }
      if(* a > * c) {
                t = * c   ;
                * c = * a ;
                * a = t   ;
      }
      if(* b > * c) {
                t = * c   ;
                * c = * b ;
                * b = t   ;      
      }
}

main(void)
{
      int a = 1000 , b = 100 , c = 10                  ;
      printf("a = %d , b = %d , c = %d\n" , a , b , c) ;
      foo(& a , & b , & c)                           ;
      printf("a = %d , b = %d , c = %d\n" , a , b , c) ;
}
      编译、运行实况
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
a = 1000 , b = 100 , c = 10
a = 10 , b = 100 , c = 1000

D:\00.Excise\C>
页: [1]
查看完整版本: C++