gpt4 book ai didi

c++ - 使用atoi (“argument of type ' int *' is incompatible with type ' const char *' ”)并添加数组时出错

转载 作者:行者123 更新时间:2023-12-02 11:09:11 24 4
gpt4 key购买 nike

我正在尝试创建一个程序,该程序从文件中提取多项式方程,然后将两个多项式相加,相减或相乘(取决于中间操作数)。但是,我遇到了两个编译器错误,我完全无法理解。

第一次发生在这里:

int** getPolynomial(string polynomial, int &count, string Exponent[], string Coefficient[], int polyArray[][1]){
for (int i = 0; i<100; i++){
for (int n = 0; n<100; n++){


Exponent[n] = atoi(polyArray[n][1]);
}
Coefficient[i] = atoi(polyArray[i][0]);

}

}

我在哪里遇到错误“在线上的类型'int *'的参数与'const char *'类型不兼容的错误”
Exponent[n] = atoi(polyArray[n][1]);
}
Coefficient[i] = atoi(polyArray[i][0]);
第二个错误发生在下方,
int** add(int **left, int leftCount, int **right, int countRight, int &countResult){
for (int q; q < leftCount; q++){
for (int r = 0; r < 2; r++){
if (left[q][1] == right[q][r]){
countResult[q][0] = left[q][0] + right[q][0];
}
}
}

}

countResult[q][0] = left[q][0] + right[q][0];行上,编译器注意到第一个q“表达式必须具有指针到对象的类型”,尽管我看不出将q用作指针会有什么帮助。

完整代码在这里: http://pastebin.com/FsM1ydE5。在此问题上的任何帮助将不胜感激。

最佳答案

您在输入类型时遇到了麻烦:

  • atoi 返回int,因此您要么需要将ExponentCoefficent更改为int[],要么需要停止使用atoi并直接分配值。
  • CountResultint&,这意味着无法对其进行索引。您需要将其设置为int[][]才能像现在一样使用它。


  • 没有任何指导,这篇文章将是不完整的:使用 vector 表示您的多项式。只要多项式相对密集,就可以使用索引表示指数,使用值表示系数。

    现在,我们得到了 string polyArray[][],它包含我们的幂以及它们在第二数组的位置0和1处的系数。我们想将其读入 vector<int> foo,它将表示我们的多项式。我们可以这样做:
    for(auto& i : polyArray)
    if(i[0] > size(foo)){
    foo.resize(i[0]);
    }
    foo[i[0]] = i[1];
    }

    现在,我们给了两个要求和的多项式,即 vector<int> leftvector<int> right,我们想将它们求和成一个新构造的多项式: vector<int>countResult,我们可以这样做,如下所示:
    if(size(left) > size(right)) {
    countResult.reserve(size(left));
    transform(cbegin(right), cend(right), cbegin(left), begin(countResult), plus<int>());
    countResult.insert(end(countResult), next(cbegin(left), size(right)), cend(left));
    } else {
    countResult.reserve(size(right));
    transform(cbegin(left), cend(left), cbegin(right), becing(countResult), plus<int>());
    countResult.insert(end(countResult), next(cbegin(right), size(left)), cend(right));
    }

    关于c++ - 使用atoi (“argument of type ' int *' is incompatible with type ' const char *' ”)并添加数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36943552/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com