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

функция qsort при сортировке массива структур - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Осадки http://www.cyberforum.ru/cpp-beginners/thread748416.html
Заданы осадки по месяцам, зафиксированные метеостанцией в течение прошедшего года. Занесите эти данные в массив и определите минимальное, среднее и максимальное значение месячных осадков. Выведите найденные значения на экран.
C++ Из заданной матрицы A составить такую матрицу B, что... из заданной матрицы A составить такую матрицу B, что b=min (a по области K={(i1,j1)| n >= i1 >= i && i1 >= j1 >= j}) Дано: n — размер матрицы далее в n строках по n целых чисел Выход: матрица n*n Помогите решить. http://www.cyberforum.ru/cpp-beginners/thread748412.html
Составить программу для вычисления выражения. В чем ошибка? C++
Составить программу для вычисления выражения (log2a+logbc)/logb+2(a+c): #include <iostream> #include <cmath> using namespace std; int main() { int a,b,c,x,y,z; float s;
C++ Найти ветвь в дереве двоичного поиска максимальной длины
Срочно нужно решить задачу для зачета(как ни странно не прогуливал, а реально не мог присутствовать на парах по С++,в связи с чем знаю язык чуть более чем на 0) Собсно задача(ну ооочень легкая,прост с С++ не знаком):найти ветвь в дереве двоичного поиска максимальной длины(от корня до листа) Добавлено через 11 часов 34 минуты Ребят до субботы очень нужно ._.
C++ Вложенные циклы http://www.cyberforum.ru/cpp-beginners/thread748392.html
как вывести на зкран следуюшие 41 42 ... 50 51 52 ... 60 61 62 ... 70 71 72 ... 80 с помошью вложенний цикл... Так просто без вложенных циклов как сделать,понятно,а вот с ними,не пойму как сделать,чтобы поочерёдно выводило...
C++ Описание структуры, которая представляет монастырь Ведомость спортивних состязаний Фамилия участника Код команды Количество балов Место в итоге Баландин С 123.7 2 Шишков Ш 79.98 3 Кравченко Д 134.8 1 Примечание: Д - "Динамо", С - "Спартак", Ш - "Шахтер" Вот образец.... подробнее

Показать сообщение отдельно
melanu
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 118
27.12.2012, 22:10     функция qsort при сортировке массива структур
Заголовочный файл:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#define SIZE 7
void vvod();
void vyvod();
int compare (const void * a, const void * b);
struct book{
    char firma[22];
    char nazvanie_mikroprocesora[20];
    int chastota;
    float moshnostb;
}temp3;
Ввод:
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
#include "my.h"
void vvod(void){
    extern count;
    extern struct book a[SIZE];
    char choice;
    if (count!=0){
        while(1){
            printf("Sozdatb novyy ili dopisatb v staryy? (N - new, O - old): ");
            choice=toupper(getchar());
            if (choice=='N'){
                count=0;
            }
            if (choice!='N' && choice !='O'){
                while (getchar()!='\n')
                    continue;
                continue;
            }
            while(getchar()!='\n')
                continue;
            break;
        }
    }
    for (count=0; count<SIZE; count++){
        printf("Vvedite firmy %d ", count+1);
        scanf("%s",a[count].firma);
        while (getchar()!='\n')
            continue;
        printf("Vvedite nazvanie ");
        scanf("%s", a[count].nazvanie_mikroprocesora);
        while (getchar()!='\n')
            continue;
        printf("Vvedite chastoty ");
        scanf("%d", &a[count].chastota);
        while (getchar()!='\n')
            continue;
        printf("Vvedite moshnostb ");
        scanf("%f", &a[count].moshnostb);
        while (getchar()!='\n')
            continue;
        printf("Zakonchitb vvod?: y/n\t");
        if (toupper(getchar())=='Y'){
            count++;
            break;
        }
        else{
            while (getchar()!='\n')
                continue;
            continue;
        }
    }
    return;
}
Вывод:
C
1
2
3
4
5
6
7
8
9
10
11
12
#include "my.h"
void vyvod(void){
    extern int count;
    extern struct book a[SIZE];
    int i;
    printf("|Nomer| |        Firma       | |   Nazvanie proca   | | Chastota | | Moshnostb |\n");
    for (i=0; i<count; i++){
        printf("=============================================================================== \n");
        printf("%7d %22s %22s %12d %13.1f\n",i+1,a[i].firma,a[i].nazvanie_mikroprocesora,a[i].chastota,a[i].moshnostb);
    }
    return;
}
Меню:
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
#include "my.h"
struct book a[SIZE];
int count;
int main(void){
    int punkt;
    count=0;
    while(1){
        printf("Viberite punkt meny\n");
        printf("1 - Vvod   2 - Vyvod 3 - qsort\n");
        scanf("%d",&punkt);
        while (getchar()!='\n')
            continue;
        switch(punkt){
            case 1:
                vvod();
                break;
            case 2:
                vyvod();
                break;
 
            case 3:
                sort_qsort();
                break;
            default:
                printf("Nety takogo punkta\n");
                break;
        }
    }
    return 0;
}
qsort:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "my.h"
void sort_qsort(void){
    extern struct book a[7];
    extern int count;
    struct book temp3;
    qsort (a, 7, sizeof(temp3), compare);
    printf("\n\nKomanda vipolnena yspeshno\n\n");
    return;
}
int compare (const void * a, const void * b)
{
   return (*(int*)a).chastota - (*(int*)b).chastota;
}
Проблема с функцией встроенной сортировки подскажите пожалуйста как исправить
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru