您好,这个简单的C ++脚本在第11行弹出错误。有人知道如何修复它吗?

时间:2017-04-25 05:21:03

标签: c++

描述

此代码用于在处理时查找扳手索引(i) 基于结矢量(U),选择结(u),期望曲线(p)的程度和基函数(n)的样条/ NURBS基函数。该算法取自Piegl和Tiller的NURBS Book。我想这个错误就是我声明变量U的方式。先进的是Thaks!

    # include <iostream>
    using namespace std;

    int n=3;    
    int p=2;
    double u=5/2;
    int U[11]={0,0,0,1,2,3,4,4,5,5,5};

    int FindSpan(n,p,u,U)     /* an error in this line */
    {
        if (u==U[n+1]) return (n);
        low=p; high=n+1;
        mid=(low+high)/2
        while(u<U[mid] || u>=U[mid+1])
        {
            if (u<U[mid]) high=mid;
            else  low=mid;
            mid=(low+high)/2
        }
        return (mid);
    }

1 个答案:

答案 0 :(得分:0)

你忘记了一些分号和类型!

这是正确的代码:

#include <iostream>
using namespace std;

int n=3;    
int p=2;
double u=5/2;
int U[11]={0,0,0,1,2,3,4,4,5,5,5};

int FindSpan(int n, int p, int u, int U[])
{
    if (u==U[n+1]) return (n);
    int low=p, high=n+1;
    int mid=(low+high)/2;
    while(u<U[mid] || u>=U[mid+1])
    {
        if (u<U[mid]) high=mid;
        else  low=mid;
        mid=(low+high)/2;
    }
    return (mid);
}
int main() {
    cout << FindSpan(n, p, u, U);
    return 0;
}