Другие языки программирования и технологии
Здраствуйте, помогите написать вот такую программу.
заполнить одномерный массив с клавиатуры. отсортировать его методом пузырька по возрастанию. полученный массив вывести на экран
Вот, вам, алгоритм, ну, чтобы дважды не обращаться)) )
// Visual C++ 2010
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <windows.h>
#include <tchar.h>
#define SIZE 12
#define SPACE printf("\n");
//using namespace std;
void Bubble(int *, int, int (*comp)(int, int));
int OnIncrease(int, int);
int OnDecrease(int, int);
void main()
{
system("color 9B");
setlocale(LC_CTYPE, "Russian_Russia.1251");
::SetConsoleTitleW(_T("Сортировка массива методом пузырька"));
int f;
int data[SIZE] = {24, 7, -14, 39, 17, 4, -9, 0, -7, 11};
printf("\n");
for (f = 0; f < SIZE; f++)
printf(" %d", data[f]);
printf("\n\n");
Bubble(data, SIZE, OnDecrease);
for (f = 0; f < SIZE; f++)
printf(" %d", data[f]);
printf("\n\n");
Bubble(data, SIZE, OnIncrease);
for (f = 0; f < SIZE; f++)
printf(" %d", data[f]);
getch();
}
void Bubble(int *d, int n, int (*comp)(int, int))
{
int k, j, temp;
for(k = 1; k < n; k++)
for(j = 0; j < n - k; j++)
if (comp(d[j], d[j + 1]))
{
temp = d[j];
d[j] = d[j + 1];
d[j + 1] = temp;
}
}
int OnIncrease(int a, int b) { return a < b; }
int OnDecrease(int a, int b) { return! OnIncrease(a, b); }
// Visual C++ 2010
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <windows.h>
#include <tchar.h>
#define SIZE 12
#define SPACE printf("\n");
//using namespace std;
void Bubble(int *, int, int (*comp)(int, int));
int OnIncrease(int, int);
int OnDecrease(int, int);
void main()
{
system("color 9B");
setlocale(LC_CTYPE, "Russian_Russia.1251");
::SetConsoleTitleW(_T("Сортировка массива методом пузырька"));
int f;
int data[SIZE] = {24, 7, -14, 39, 17, 4, -9, 0, -7, 11};
printf("\n");
for (f = 0; f < SIZE; f++)
printf(" %d", data[f]);
printf("\n\n");
Bubble(data, SIZE, OnDecrease);
for (f = 0; f < SIZE; f++)
printf(" %d", data[f]);
printf("\n\n");
Bubble(data, SIZE, OnIncrease);
for (f = 0; f < SIZE; f++)
printf(" %d", data[f]);
getch();
}
void Bubble(int *d, int n, int (*comp)(int, int))
{
int k, j, temp;
for(k = 1; k < n; k++)
for(j = 0; j < n - k; j++)
if (comp(d[j], d[j + 1]))
{
temp = d[j];
d[j] = d[j + 1];
d[j + 1] = temp;
}
}
int OnIncrease(int a, int b) { return a < b; }
int OnDecrease(int a, int b) { return! OnIncrease(a, b); }
Метод пузырька есть в любой книге по паскалю. Если настолько лень, то 50р и будет счастье...
Хехех а язык то какой?? ? наверное Q basic и это задание заданное на практической в школе на информатике ? :)
Похожие вопросы
- Помогите написать в QBasic программу-фильтр! У МЕНЯ ЗАЧЕТ!!!
- Помогите написать алгоритм и программу на фортране
- Помогите написать код для программы...
- Помогите написать на PascalABC программу
- Помогите написать в Паскале программу
- помогите написать на Си программу, пожалуйста
- Помогите написать программу со switch в СИ
- помогите написать простые программы на Qbasic
- Помогите написать программу на С. Тема Составление программ с использованием массивов
- Помогите написать пару программ на СИ