judge(i,j)的i,j是值传递的,意思是:运行这个函数的时候是把i,j的值拷贝了一份输入进去,跟原来的i,j没什么影响。
所以有两个思路:
第一个是仍然值传递,然后把void改成输出型的,
比如:(int,int) judge(i,j) {return i>j?(i,j):(j:i)}
然后
arr[m]=judge(i,j).first()
arr[n]=judge(i,j).second()
第二个是改成地址传递,楼上说的引用传递,
谢谢指导
首先,你的 judge 函数声明就有问题,函数声明的参数没类型,我都不知道咋通过的。还有 c/c++ 里面参数传递都是值传递,想要输出有效果,要么 c/c++ 指针,c++ 就可以是引用。
void judge(int &i, int&j) // c++ only
void judge(int *i, int* j) // 传参的话要传地址
谢谢指导,我回去再试试