gpt4 book ai didi

c - 排列方程中的项以隔离 C 中的 y 项

转载 作者:行者123 更新时间:2023-11-30 15:05:20 25 4
gpt4 key购买 nike

我想采用 ODE 方程并分离 y'' 项。

例如-3xy' -y'' - bcos(t) = asin(t) 变为 y'' = -3xy' - bcos(t) - asin(t)

例如:4y - 3y' = -y'' 将是 y'' = -4y + 3y'

规则:最高阶必须是y'',并且y''项前面不会有常量,因此不需要除法。

基本上,我想做的是在需要的地方添加“+”号,然后循环遍历字符串,每当我在等号的错误一侧找到“+”时在其另一侧放置一个“-”,然后移动其与下一个 + 或 - 之间的所有字符。

example: "-2+y'=3x" 
turns into "-2+y'=+3x"
and then I take that and make it to
"2+y'=+3x+"
and finally "+y'=+3x+2"

这是我迄今为止的尝试,尽管什么也没发生:

#include <stdio.h>
#include <string.h>

int main()
{
FILE *fin;
fin = fopen("diffeq.txt", "r");
char line[300];
char from[300];
char to[300];

while (fgets(line, sizeof(line), fin))
{
for (int i = 0; i < strlen(line); i++)
{
if (from[i] == '=' && from[i + 2] != '-')
to[i] = '=';
i++;
to[i] = '+';
i++;
printf("%s\n", line);
}
}
fclose(fin);
}

最佳答案

您可以做到这一点的方法是根据左侧大小和右侧的术语进行标记。

  1. 有 2 个字符串数组:我们称它们为 lhsrhs
  2. 循环方程式并对各项进行标记并将它们存储到各自的数组中。

例如:

lhs = ["-3x","+2","-y"]
rhs = ["+4y","-5"]
  • 现在创建 2 个新的字符串数组来存储重组后的左侧和右侧。我们将它们称为 new_lhsnew_rhs

  • 迭代 lhsrhs 并将所有非 y 项放入 new_lhs 中, new_rhs 中的所有 y 项。

  • 简化术语。

  • new_lhsnew_rhs 连接成一个新字符串。

  • 编辑:您可以通过将其包装在函数中并传入您想要求解的变量来使该变量不可知

    例如:

    char* solve_for_variable(char* variable, char* equation);

    关于c - 排列方程中的项以隔离 C 中的 y 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39927869/

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