Я постараюсь сделать это коротким и простым. Вот мое назначение (слишком большое, чтобы скопировать его здесь):
[Упражнение картинка 1] [2] [Упражнение картинка 2] [1]Короче говоря, я создал новый стиль данных, который будет содержать 3 значения (a, b и c), которые должны быть приведены в уравнение, а затем он вычислит корни и отобразит его.
Я еще не почти закончил, но у меня есть некоторые проблемы с сортировкой значений (что мы должны сделать)
Согласно моему комментарию:
Я считаю, что если вы инициализируете pass в 0, инициализируете i в (pass + 1), замените все V [i] на V [pass], а все V [i + 1] на V [i], ваш код должен работать как ожидаемый
void swap(Quadratic_equation arr[], int lowerIndex, int higherIndex) {
Quadratic_equation temp = arr[lowerIndex];
arr[lowerIndex] = arr[higherIndex];
arr[higherIndex] = temp;
}
void sort_equation_array(Quadratic_equation V[], int howMany)
{
for ( int pass = 0; pass < howMany; pass++ )
{
for (int i = (pass + 1); i <= howMany -1; i++)
{
if (V[pass].a > V[i].a)
{
swap(V, pass, i);
}
else if (V[pass].a == V[i].a &&
V[pass].b > V[i].b)
{
swap(V, pass, i);
}
else if (V[pass].a == V[i].a &&
V[pass].b == V[i].b &&
V[pass].c > V[i].c)
{
swap(V, pass, i);
}
}
}
}
Вы также должны очистить свой ввод, чтобы было легче определить, какие значения куда идут. Вот что я сделал, вы можете изменить это, чтобы сказать, что вы хотите, но вы поняли идею.
void get_quadratic_equation(Quadratic_equation &e)
{
cout << "a: ";
cin >> e.a;
cout << "b: ";
cin >> e.b;
cout << "c: ";
cin >> e.c;
}
int load_equation(Quadratic_equation V[], int n)
{
Quadratic_equation e;
int counter = 0;
cout << endl << "Set values for equation " << counter << endl;
get_quadratic_equation(e);
while (e.a != 0)
{
V[counter] = e;
++counter;
if (counter == n) break;
cout << endl << "Set values for equation " << counter << endl;
get_quadratic_equation(e);
}
cout << endl;
return counter;
}
** Введите квадратные уравнения ** Установите значения для уравнения 0 а: 1 Би 2 с: 3 Установите значения для уравнения 1 а: 4 б: 5 с: 6 Установите значения для уравнения 2 а: 7 б: 8 с: 9 Установите значения для уравнения 3 а: 8 б: 7 с: 6 Установите значения для уравнения 4 а: 5 б: 4 с: 3 Установите значения для уравнения 5 а: 2 б: 1 с: 0 Установите значения для уравнения 6 а: 0 б: 0 с: 0 ** НЕ Сортировано ** 1x ^ 2 + 2x + 3 корень 1 = -1,00 + i 1,41 корень 2 = -1,00-i 1,41 4x ^ 2 + 5x + 6 корень 1 = 0,00 + я 1,05 корень 2 = 0,00-я 1,05 7x ^ 2 + 8x + 9 корень 1 = 0,00 + я 0,98 корень 2 = 0,00-я 0,98 8x ^ 2 + 7x + 6 корень 1 = 0,00 + я 0,75 корень 2 = 0,00-я 0,75 5x ^ 2 + 4x + 3 корень 1 = 0,00 + я 0,66 корень 2 = 0,00-я 0,66 2x ^ 2 + 1x + 0 корень 1 = 0,00 корень 2 = -0,50 ** отсортировано по ** 1x ^ 2 + 2x + 3 корень 1 = -1,00 + i 1,41 корень 2 = -1,00-i 1,41 2x ^ 2 + 1x + 0 корень 1 = 0,00 корень 2 = -0,50 4x ^ 2 + 5x + 6 корень 1 = 0,00 + я 1,05 корень 2 = 0,00-я 1,05 5x ^ 2 + 4x + 3 корень 1 = 0,00 + я 0,66 корень 2 = 0,00-я 0,66 7x ^ 2 + 8x + 9 корень 1 = 0,00 + я 0,98 корень 2 = 0,00-я 0,98 8x ^ 2 + 7x + 6 корень 1 = 0,00 + я 0,75 корень 2 = 0,00-я 0,75
Других решений пока нет …