Форум программистов, компьютерный форум, киберфорум
Наши страницы

Сортировка массива структур - C (СИ)

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Поиск слова в строке http://www.cyberforum.ru/c-beginners/thread19722.html
программа в виде меню: 1-ввод заданного слова 2-ввод строки 3-вывод результата 0-выход Проверить строку на наличие заданного слова и учесть, что строка не может имень больше 80 симоволов...как...
C (СИ) Напишите функцию, вычисляющую НОД двух целых чисел Напишите функцию на языке Си, вычисляющую НОД двух целых чисел #include <stdio.h> #include <stdlib.h> #include <math.h> int main(void) { int a,b,c,n,i; printf("vvedite 2 chisla... http://www.cyberforum.ru/c-beginners/thread19710.html
C (СИ) Найти наиболее часто встречающееся число в последовательности и удалите все элементы, равные числу
Дана последовательность из N чисел. Найти наиболее часто встречающееся число в последовательности и удалите все элементы, равные этому числу. Распечатать результат, повторите процедуру пока не...
Вычислить значение ряда по заданным x и N, в трех вариантах C (СИ)
cos(x)=x–x^2/2!+x^4/4!-x^6/6!+x^8/8!+...x^N/N! Вычислить значение ряда по заданным x и N, в трех вариантах: с циклами for, while, dowhile
C (СИ) Создание динамического массива строк http://www.cyberforum.ru/c-beginners/thread18980.html
Задача состоит в следующем: из массива строк нужно найти подстроки по заданному условию (например, наличие определенных символов) и записать их в новый динамический свободный массив, а потом...
C (СИ) Упрощение сортировки элементов массива Этот массив мне нужен для упрощение сортировки элементов массива т.е у меня будут задаваться числа от -100 до 100, и я каждый раз буду вносить i-ое число на i-ую позицию, а дальше просто если в... подробнее

Показать сообщение отдельно
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
26.12.2008, 23:35
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
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define asize(a)  (sizeof (a) / sizeof (a)[0])
 
typedef struct {
    char s1[100];
    char s2[100];
    char s3[100];
} Unit;
 
/* сортирует структуры по выбранному полю */
main()
{
    int unitcmp_s1(Unit *, Unit *);
    int unitcmp_s2(Unit *, Unit *);
    int unitcmp_s3(Unit *, Unit *);
    int (*fp)(Unit *, Unit *);
    int i;
    Unit arr[] = {
        { "A", "B", "C" },
        { "C", "C", "B" },
        { "D", "D", "A" },
        { "B", "A", "D" }
    };
    
    fp = &unitcmp_s2;   /* выбор поля */
    
    for (i = 0; i < asize(arr); i++)
        printf("%s %s %s\n", arr[i].s1, arr[i].s2, arr[i].s3);
    putchar('\n');
    qsort(arr, asize(arr), sizeof arr[0],
        (int (*)(const void *, const void *)) fp);
    for (i = 0; i < asize(arr); i++)
        printf("%s %s %s\n", arr[i].s1, arr[i].s2, arr[i].s3);
    return 0;
}
 
/* unitcmp_s1:  сравнивает поля s1 структур u1 и u2 */
int unitcmp_s1(Unit *u1, Unit *u2)
{
    return strcmp(u1->s1, u2->s1);
}
 
/* unitcmp_s2:  сравнивает поля s2 структур u1 и u2 */
int unitcmp_s2(Unit *u1, Unit *u2)
{
    return strcmp(u1->s2, u2->s2);
}
 
/* unitcmp_s3:  сравнивает поля s3 структур u1 и u2 */
int unitcmp_s3(Unit *u1, Unit *u2)
{
    return strcmp(u1->s3, u2->s3);
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.