提问者:小点点

C++中指针到数组形式的转换问题?


我试图将一个用于计算最大半径的函数从使用指针转换为使用长度数组(L[10])。不幸的是,它显示了不同的结果,使用指针的结果是正确的,而数组形式是不正确的,但我找不到这个计算中的问题是什么。请给我看看写进数组表格中的问题。如有任何帮助,我们将不胜感激。

 L[10]={1,2,3,4,5,6,7,8,9,10}

//Function in pointer form

double maxR() {
    double er,pr, *p1=L+3, *p2=L+9;
    er=(L[0]*L[0])+(L[1]*L[1])+(L[2]*L[2]);
    while(p1<p2) {
       pr=*p1*(*p1); p1++;
       pr+=*p1*(*p1); p1++;
       pr+=*p1*(*p1); p1++;

       if(pr>er){ er=pr; }
    }
    return er;
}


//Function in array form

double maxR() {
    double er,pr;
    er=(L[0]*L[0])+(L[1]*L[1])+(L[2]*L[2]);
    int i=3;
    while(L[i]<L[9]) {
        pr=L[i]*L[i]; i++;
        pr+=L[i]*L[i]; i++;
        pr+=L[i]*L[i]; i++;

        if(pr>er){ er=pr; }
    }
    return er;
}

共1个答案

匿名用户

更改

while(L[i]<L[9])

while(i<9) 

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(c++|中|指针|数组|形式|转换)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?