Другие языки программирования и технологии
Помогите с массивом и сортировкой методом пузырька в языке Си! Прогу надо сдать в пятницу срочно, не знаю как начать!
Вычислить и записать в массив значение функции y=a*x^2+b*x+c при изменении x от х (начальн) до х (конечной) с шагом h. Массив значений отсортировать по убыванию методом пузырька и х (нач) = -4.5, х (кон) = -33.5, h=0.5; напечатать результат.
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <locale.h>
size_t size_array(double, double, double);
void method_bubble(double *, size_t);
void show_array(double *, size_t);
int main() {
double x_beg = -4.5, x_end = -33.5, h = 0.5, a, b, c, * arr = NULL, x_next = x_beg;
size_t size = size_array(x_beg, x_end, h), n;
setlocale(LC_CTYPE, "Russian_Russia.1251");
printf("Введите a: "); scanf_s("%Lf", &a);
printf("Введите b: "); scanf_s("%Lf", &b);
printf("Введите c: "); scanf_s("%Lf", &c);
arr = (double *)calloc(size, sizeof(double));
for (n = 0; n < size; n++) {
arr[n] = a * pow(x_next, 2) + b * x_next + c;
x_next -= h;
}
printf("До сортировки: \n");
show_array(arr, size);
method_bubble(arr, size);
printf("После сортировки: \n");
show_array(arr, size);
free(arr);
_getch();
return 0;
}
size_t size_array(double beg, double end, double step) {
size_t size;
double abs_beg = fabs(beg), abs_end = fabs(end), abs_step = fabs(step);
double max = abs_beg > abs_end? abs_beg : abs_end;
double min = abs_beg + abs_end - max;
double eps = 1e-10;
if (abs_step < eps) size = 0;
else size = (size_t)((max - min + eps) / abs_step) + 1;
return size;
}
void method_bubble(double * ptr, size_t size) {
size_t n, m;
double temp;
for (n = 1; n < size; n++)
for (m = 0; m < size - n; m++)
if (ptr[m] < ptr[m + 1]) {
temp = ptr[m];
ptr[m] = ptr[m + 1];
ptr[m + 1] = temp;
}
}
void show_array(double * ptr, size_t size) {
size_t n;
for (n = 0; n < size; n++) printf(" %Lf\n", ptr[n]);
printf("\n");
}
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <locale.h>
size_t size_array(double, double, double);
void method_bubble(double *, size_t);
void show_array(double *, size_t);
int main() {
double x_beg = -4.5, x_end = -33.5, h = 0.5, a, b, c, * arr = NULL, x_next = x_beg;
size_t size = size_array(x_beg, x_end, h), n;
setlocale(LC_CTYPE, "Russian_Russia.1251");
printf("Введите a: "); scanf_s("%Lf", &a);
printf("Введите b: "); scanf_s("%Lf", &b);
printf("Введите c: "); scanf_s("%Lf", &c);
arr = (double *)calloc(size, sizeof(double));
for (n = 0; n < size; n++) {
arr[n] = a * pow(x_next, 2) + b * x_next + c;
x_next -= h;
}
printf("До сортировки: \n");
show_array(arr, size);
method_bubble(arr, size);
printf("После сортировки: \n");
show_array(arr, size);
free(arr);
_getch();
return 0;
}
size_t size_array(double beg, double end, double step) {
size_t size;
double abs_beg = fabs(beg), abs_end = fabs(end), abs_step = fabs(step);
double max = abs_beg > abs_end? abs_beg : abs_end;
double min = abs_beg + abs_end - max;
double eps = 1e-10;
if (abs_step < eps) size = 0;
else size = (size_t)((max - min + eps) / abs_step) + 1;
return size;
}
void method_bubble(double * ptr, size_t size) {
size_t n, m;
double temp;
for (n = 1; n < size; n++)
for (m = 0; m < size - n; m++)
if (ptr[m] < ptr[m + 1]) {
temp = ptr[m];
ptr[m] = ptr[m + 1];
ptr[m + 1] = temp;
}
}
void show_array(double * ptr, size_t size) {
size_t n;
for (n = 0; n < size; n++) printf(" %Lf\n", ptr[n]);
printf("\n");
}
Сергей Кузнецов
Обалдеть! Вот это программа! Спасибо, конечно, большое, но такую показывать - самой себе хуже! На первом курсе никто не умеет такие писать((((
Igor Sisjuk
Для красоты можно еще вставить заместо указателей на массив шаблонный класс списка с реализацией. Или класс итератора (с реализацией).
Похожие вопросы
- Сортировка методом пузырька. Си.
- Срочно нужна сортировка методом пузырька на с++. Срочносрочносрочно
- Помогите найти ошибку в задаче, сортировка методом пузырька работает неправильно.
- Заполните массив случайными числами. Отсортируйте массив по возрастанию методом пузырька.
- Помогите пожалуйста, решить данную задачу методом пузырька!!!
- Сортировка Структур по Алфавиту (Язык Си)
- помогите....не представляю что делать с этой задачей....язык си....
- Язык СИ. Массивы Ребят, как на Си написать сортировку массива от меньшего к большему?
- c#. Сортировка массива в отдельном методе. Консольное приложение.
- Сортировки, язык Си.