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-24 21:19:11 浏览: 8
在这段代码中,如果 `expression` 是 `2sin(2x)+1`,那么 `list2[1]` 的值应该是空字符串,因为没有字符是以 `x)` 结尾的。因此,使用 `list2[1]` 会返回一个空字符串,不会超出数组范围。但是,请注意,在这种情况下,您需要在计算时将其转换为数字,因为 `toDouble()` 函数在遇到空字符串时会返回0。
相关问题
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]是多少
在这段代码中,`expression` 是 `"2sin(2x)+1"`,首先通过 `split()` 方法将其分割成两个部分:
```
list1 = ["2", "(2x)+1"]
```
然后再将 `list1[1]` 分割成两部分,得到:
```
list2 = ["(2", ")"]
```
所以 `list2[1]` 的值为 `")"`。注意,这段代码中并没有获取 `list2[0]` 的值,因为这里只需要用到 `b` 的值,而 `b` 的值已经在上一步中被提取出来了。
阅读全文