int* m = 新的 int [d1*d2]; (行列)
for ( j = 0; j < d2; j++ ){
largest = new int(0);
for ( i = j; i < d1*d2; i +=d2){
if ( *(m+i) > *largest){largest = (m+i);}
这段代码在列中找到最大的元素。我想做的是通过使用指针递归地在列中找到最大的元素。
假设我有这样的专栏:
7
6
5
我找到了最大的元素,在这种情况下是 7,它存储在最大的元素中。
现在我想要第二个指针,让我们说
整数 * ptr2
并使用它来存储我的列中的第二大元素,在这种情况下为 6 并计算
*最大 + *ptr2
并递归执行 6 和 5(而 *largest 保留 6 并且 *ptr2 保留 5)
*最大 + *ptr2
我尝试通过使用将 ptr2 上的初始位置设置为低于最大的一个元素
ptr2 = 最大 + d2
不能正常工作。当最大元素位于列的底部时也可能有问题,那么我猜这行会将 ptr2 设置为数组之外的某个位置。