else if (expression.contains("sin", Qt::CaseInsensitive)) { //正弦函数 QStringList list1 = expression.split("sin("); double a = list1[0].toDouble(); QStringList list2= list1[1].split("x)"); double b = list2[0].toDouble(); double c = list2[1].toDouble(); xValues.append(i); yValues.append(aqSin(bi)+c);在这段代码中expression是2sin(2x)+1,那么list2[1]是多少,使用list[1]会超越数组范围吗
时间: 2024-01-22 16:21:05 浏览: 24
在这段代码中,当 `expression` 为 `2sin(2x)+1` 时,`list2[1]` 会超出数组范围,因为 `list2` 中只有两个元素:`list2[0]` 是 `"2"`,`list2[1]` 是 `"x)"`。可以使用`if`语句检查`list2`中是否有第三个元素,如果没有,则说明该项是常数项而非常数值,可以将其设为0。修改后的代码如下:
```cpp
else if (expression.contains("sin", Qt::CaseInsensitive)) { //正弦函数
QStringList list1 = expression.split("sin(");
double a = list1[0].toDouble();
QStringList list2= list1[1].split("x)");
double b = list2[0].toDouble();
double c = 0; // 初始化常数项为0
if (list2.length() > 1) { // 如果有第三个元素,则说明该项是常数值
c = list2[1].toDouble();
}
xValues.append(i);
yValues.append(aqSin(bi)+c);
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)