C++ 从';标准::ios_基地和;(*)(标准:ios#U base&;)&x27;至';int';[-fpermissive]

C++ 从';标准::ios_基地和;(*)(标准:ios#U base&;)&x27;至';int';[-fpermissive],c++,C++,我已经实现了查找最大值和最小值的函数。但我得到以下错误代码: [错误]从'std::ios_base&(*)(std::ios_base&)'到'int'[-fppermissive]的转换无效 #include<iostream> using namespace std; int a[1000], n, maxDiff, maxValue, minValue; void nhap() { int i, n; cout <

我已经实现了查找最大值和最小值的函数。但我得到以下错误代码: [错误]从'std::ios_base&(*)(std::ios_base&)'到'int'[-fppermissive]的转换无效

#include<iostream>
    using namespace std;
    int a[1000], n, maxDiff, maxValue, minValue;
    void nhap() {
        int i, n;
        cout << "Nhap n: ";
        cin >> n;
        for ( int i =1; i <= n; i ++) {
            cout << "Nhap vao mang thu i: " << i << endl;
            cin >> a[i];
        } 
    }
    void findmaxdiff(int left, int right, int maxDiff, int& maxValue, int& minValue) {
        int mid;
        int maxD1, maxV1, minV1;
        int maxD2, maxV2, minV2;
        if(left==right) {
            maxDiff = 0;
            maxValue = a[right];
            minValue = a[right];
        }
        else {
            mid = (left +right) / 2;
            findmaxdiff(left, mid, maxD1, maxV1, minV1);
            findmaxdiff(mid+1, right, maxD2, maxV2, minV2);
            maxDiff = maxV2 - minV1;
            if(maxDiff< maxD1) maxDiff = maxD1;
            if(maxDiff< maxD2) maxDiff = maxD2;
            if(maxV1> maxV2){
                maxValue= maxV1;
            }
            else {
                maxValue = maxV2;
            }
            if(minV1< minV2) {
                minValue = minV1;
            }
            else {
                minValue= minV2;
            }
        }
    }
    int main() {
        nhap();
        findmaxdiff(left, n, maxDiff, maxValue, minValue);
        cout << maxDiff;
    }
#包括
使用名称空间std;
int a[1000],n,maxDiff,maxValue,minValue;
void nhap(){
inti,n;
cout>n;

对于(int i=1;i变量
left
定义缺失

不要通过
使用名称空间std;
std
名称空间扩展到全局名称空间,这样可以避免此类错误。您忘记声明变量
left
和函数
std::ios_base&left(std::ios_base&str);
来自名称空间
std


缺少变量
left
定义

不要通过
使用名称空间std;
std
名称空间扩展到全局名称空间,这样可以避免此类错误。您忘记声明变量
left
和函数
std::ios_base&left(std::ios_base&str);
来自名称空间
std


你的“左”字声明在哪里?你的“左”字声明在哪里?编译器注释说这是函数的第一个参数的问题。我认为这只是一个熟悉编译器消息的问题。@Gamenotcore它说
left
来自
std
,这足以理解原因。是的,但问题的另一半在于理解compiler消息。但是,是的,正确的代码实践可以最大限度地减少出现问题的可能性。但是,如果您自己的作用域变量出错,在不导入std的情况下,同样的问题仍然会出现。编译器注释说这是函数的第一个参数的问题。我认为这只是熟悉wi的问题编译器消息。@Gamenotcore它说
left
来自
std
,这足以理解原因。这是真的,但问题的另一半在于理解编译器消息。但是,是的,正确的代码实践可以最大限度地减少出现问题的可能性。然而,同样的问题也可能仍然存在如果你自己的作用域变量出错,我会在不导入std的情况下出现。