Форум программистов, компьютерный форум CyberForum.ru

Структуры и массивы, сортировка списка. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поменять местами два элемента массива http://www.cyberforum.ru/cpp-beginners/thread225523.html
Помогите решить пжл! в С++ ваще не шарю , а скора сессия I сем – Алгоритмические языки программирования Разработать схемы алгоритмов и программ (на Cu или C++) решение следующих задач: 1) Поменять местами два элемента – a и b 2) Вычислить Y= x2+5, если x<=2 2x, если x>2 3) Вычислить -x+1, если 1<x<=3
C++ устранить ошибки Привет! Я уже обращался с подобной просьбой, но остался без ответа. помогите пожалуйста. срочно надо! задача такова что нужно написать программу которая сортирует массивы из 1000, 5000 и 10000 элементов двумя видами сортировок и ввыводит время для каждой сортировки каждого массива. вот код, но тут у меня выходит что сортировка пузырька сортирует массив из 1000 элементов быстрее чем сортировка... http://www.cyberforum.ru/cpp-beginners/thread225519.html
сортировка одномерного массива C++
объясните пожалуйста алгоритм выполнения сортировки относительно компьютера(программы)
Сформировать одномерный массив целых чисел C++
Здравствуйте. Скажите пожалуйста, что изменить, чтобы всё работало. Программа компилируется, но я не понял всех нюансов здачи. вот сама задача: При выполнении работы используются статические массивы. Для организации статических массивов с псевдопеременными границами необходимо объявить массив достаточно большой длины. Затем пользователь вводит реальную длину массива (не больше N) и работает...
C++ Использовать для работы с матрицами указатели и операции вида *p++, p++ http://www.cyberforum.ru/cpp-beginners/thread225470.html
Здравствуйте. снова обращаюсь к вам. Задание такое: Использовать для работы с матрицами указатели и операции вида *p++, p++ и т.д. Матрицы динамические, размер вводится с клавиатуры. Числовые значения считать целыми. Инициализацию матриц реализовать через датчик случайных чисел или ввод с клавиатуры. Результат программы записать в файл. Дана матрица A(N, M). Найдите количество элементов этой...
C++ Вычислить значение выражения помгите плиз сделать Дано: x1,...,x7; l1,...,l6; a, b Определить: S = \frac{\sum_{i=1}^{7} ({x}_{i} - ab)}{\sum_{j=1}^{6}({l}_{i} - a)} ;{P}_{i}=S{l}_{i} подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
08.01.2011, 06:53     Структуры и массивы, сортировка списка.
Сортировка реализуется так же, как сортировка обычного массива, например пузырьком.

Пример сортировки массива структур:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdio.h>
 
typedef struct _A A;
 
void sort(A *, int);
 
typedef struct _A
{
    int a;
    char c;
} A;
 
#define N 5
 
int main(void)
{
    A arr[N];
    int i;
 
    for (i = 0; i < N; ++i)
    {
        printf("arr[%d].a = ", i);
        scanf("%d", &arr[i].a);
        printf("arr[%d].c = ", i);
        scanf("\n%c", &arr[i].c);
    }
 
    sort(arr, N);
 
    for (i = 0; i < N; ++i)
        printf("arr[%d].a = %d\tarr[%d].c = %c\n", i, arr[i].a, i, arr[i].c);
 
    return 0;
}
 
void sort(A *arr, int n)
{
    A temp;
    int i, j;
 
    for (i = 0; i < n; ++i)
    {
        for (j = n - 1; j > i; --j)
        {
            if (arr[j - 1].a > arr[j].a)
            {
                temp = arr[j];
                arr[j] = arr[j - 1];
                arr[j - 1] = temp;
            }
        }
    }
}
Предусмотреть меню - это значит, что пользователь должен выбирать, какую операцию в данный момент должна совершить программа, ввести значения элементов массива, вывести сумму баллов каждого студента или отсортировать список студентов.

Пример меню:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <stdio.h>
 
void function1();
void function2();
void function3();
void exit();
 
int main(void)
{
    int v;
 
    do
    {
        printf("\nMain menu:\n");
        printf("1. Item 1\n");
        printf("2. Item 2\n");
        printf("3. Item 3\n");
        printf("4. Exit\n");
        printf("Choise: ");
        scanf("%d", &v);
 
        switch (v)
        {
        case 1:
            function1();
            break;
        case 2:
            function2();
            break;
        case 3:
            function3();
            break;
        case 4:
            exit();
            break;
        default:
            printf("You must enter a number from 1 to 4\nTry again\n\n");
            continue;
        }
    }
    while (v != 4);
 
    return 0;
}
 
void function1()
{
    printf("\nCall function 1...\n");
}
 
void function2()
{
    printf("\nCall function 2...\n");
}
 
void function3()
{
    printf("\nCall function 3...\n");
}
 
void exit()
{
    printf("\nExit...\n");
}
 
Текущее время: 22:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru