0

我已经编写了一个函数来查找 3 个指针指向的 3 个变量中的最小值,并且在函数调用之后我想要更新指向 min 的指针。价值。

为了实现这一点,我使用了指向指针的指针。我可以使用对指针变量的引用而不是指向指针(双指针)的指针来使代码干净吗?

int findRange(int p1,int p2, int p3)
{
    return max(max(abs(p1-p2),abs(p2-p3)),abs(p3-p1));
}


int** findMin( int **p1,int **p2,int **p3)
{
    int **m = p1;
    if (**m > **p2) m = p2;
    if (**m > **p3) return p3;
    return m;
}



int main()
{
    struct _a{
        int a,b,c;
    } result;
    int a[]={2, 10, 15, 24, 26,-1};
    int b[]={0, 9, 12, 20,-1};
    int c[]={10, 18, 22, 30,-1};
    int i=0;
    int *p1=a,*p2=b,*p3=c;
    int min=INT_MAX;
    int **t;
    while((*p1 != -1)&&(*p2!=-1)&&(*p3!=-1))
    {
        int range=findRange(*p1,*p2,*p3);
        if(range<min){
        result.a=*p1;
        result.b=*p2;
        result.c=*p3;
        min=range;
        }
        t=findMin(&p1,&p2,&p3);

        (*t)++;

    }
    (*t)--;
    cout<<result.a<<"'"<<result.b<<"'"<<result.c<<"' range="<<min<<endl;

    return 0;
}
4

0 回答 0