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 09:19:12 浏览: 71
在这段代码中,`list2[1]`应该是空字符串,因为字符串 "2sin(2x)+1" 中的最后一个括号是与第一个括号配对的右括号,后面没有多余的字符。因此,使用 `list2[1]` 不会超出数组范围,但它会得到一个空字符串,而不是您可能期望的常数项。如果您希望直接计算常数项,可以将其作为一个单独的项添加到表达式中,例如 "2sin(2x)+1+3",然后解析它并将常数项添加到 `c` 变量中,而不是从 `list2[1]` 中获取它。
相关问题
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` 时,`list2[1]` 应该是空字符串(`""`),因为 `split()` 方法中使用了 `x)` 作为分隔符,而该字符串中并没有以 `x)` 结尾的子串。因此,`list2` 应该只包含一个元素,即 `list2[0]` 为 `2`。
阅读全文