Обратите внимание, что это не код, а просто краткое представление о том, как реализовать его в C.
Ваш подход должен быть таким, как показано ниже:
1) Попросите пользователя ввести число уравнений.
scanf("%d", &no_of_equations);
2) Попросите пользователя ввести переменные уравнения:
char var[no_of_equations];
for (i = 0; i < no_of_equations; ++i)
scanf("%c", &var[i])
3) Выделите двумерный массив (матрицу), используя malloc (с помощьюколичество коэффициентов совпадает с числом уравнений)
int *arr[no_of_equations];
for (i=0; i<no_of_equations; i++)
arr[i] = (int *)malloc(c * sizeof(int));
4) Возьмите уравнения в качестве входных данных и используйте манипуляции со строками:
char* equations[no_of_equations];
for (i=0; i<no_of_equations; i++)
equations[i] = (char *)malloc(MAX_SIZE * sizeof(char));
for (j = 0; equations[i][j] != '\0'; j++) {
for (k = 0; k < no_of_equations; k++) {
if (equations[i][j] == var[k]) {
arr[i][k] = equations[i][j-1]; // Storing coefficient corresponding to kth coefficient for ith equation
}
Алгоритм будет принимать O (n ^ 3),Любые улучшения приветствуются.