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

Мне необходимо отсортировать записи - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вопрос о динамическом выделении памяти для строки http://www.cyberforum.ru/cpp-beginners/thread21458.html
Как можно реализовать динамическое выделение для строки, т.е. например у меян есть указатель - char *c. Мне необходимо ввести строку с клавиатуры, выделить для нее память через указатель с и занести ее в эту память. Как это можно реализовать?
C++ оператор ввода помогите плз... мне нужен оператор, ограничивающий количество введенных символов ( в частности как в линухе - считывание без Ентара) и время ввода, так же очень хотелось бы, что бы он умел считывать стрелки, буквы и другие софтовые и хардовые клавишы, переводя их в число (записывая в переменную типа инт)... кто-нибудь знает как заставить так работать сканф или другое такое чудо.... http://www.cyberforum.ru/cpp-beginners/thread21452.html
Определить индекс столбца, в котором находится максимальное количество нулей C++
определить индекс столбца, в котором находится максимальное кол-во нулей. Переставить элементы данного столбца в обратном порядке
C++ Как открыть бинарный файл, не зная его структуру?
Можно ли как-нибудь открыть бинарный файл, не зная его структуру?
C++ Составить судоку. Разгадать ее и описать алгоритм. http://www.cyberforum.ru/cpp-beginners/thread21381.html
Составить судоку.разгадать ее и описать агларитм.:help:
C++ Нужна консультация по Visual Studio 6.0 Я никогда не писал в вижуал студии, и у меня ее нет, чтобы проверить, поэтому прошу консультации. Есть небольшая прога на досовом с++(Борландовский компилятор). Она нормально скомпилируется в качестве консольного приложения на студии или там будут какие-то ньюансы? подробнее

Показать сообщение отдельно
Blacki
0 / 0 / 0
Регистрация: 18.01.2009
Сообщений: 6
18.01.2009, 16:17     Мне необходимо отсортировать записи
Помогите разобраться с ошибкой.
Мне необходимо отсортировать записи по полю "kenteken"
После использования стандартной функции QSORT ничего не сортируется
А при использовании указателей вообще получаются нулевые значения.

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 20
 
typedef struct {
  int lignr;
  int kenteken;
  char kleur[7];
  int passagiers;
} BOOT;
 
int vgl(const void*, const void*);
void toon_tab(BOOT[], int);
 
int main(void)
{
 
  BOOT haven[MAX] = {{12,101,"rood",12},
              {14,105,"blauw",8},
              {4,628,"blauw",24},
              {3,411,"rood",28},
              {11,311,"blauw",14},
              {8,205,"geel",18},
              {15,208,"blauw",22},
              {0, 0, "dummy", 0}};
  int* parade;
  int aantalboten, aantal=0, bl=0, rd=0, gr=0;
  BOOT* qb;
  qb=&haven;
 
while((strcmp(haven[aantal].kleur,"dummy"))!=0)  aantal++;
aantalboten=aantal;
printf("Het aantal boten is %d\n", aantalboten);
 
printf("\nInhoud haven\n");
printf("nr  ln   kentk   kleur   pass\n");
for(aantal=0; aantal<aantalboten; aantal++)
printf(" %d %3d %7d   %-7s %3d\n",
        aantal, haven[aantal].lignr, haven[aantal].kenteken, haven[aantal].kleur, haven[aantal].passagiers);
 
for(aantal=0; aantal<aantalboten; aantal++) {
    if((strcmp(haven[aantal].kleur,"blauw"))==0) bl++;
    if((strcmp(haven[aantal].kleur,"rood"))==0)  rd++;
    if((strcmp(haven[aantal].kleur,"groen"))==0) gr++;
    }
printf("\nVoor de kleur blauw : %d\n", bl);
printf("Voor de kleur rood  : %d\n", rd);
printf("Voor de kleur groen : %d\n\n", gr);
 
printf("\nInhoud haven GESORTEERD\n");
printf("nr  ln   kentk   kleur   pass\n");
 
qb=calloc(aantalboten, sizeof(BOOT));
qsort(qb, aantalboten, sizeof(BOOT), vgl);
toon_tab(qb, aantalboten);
 
printf("\n");
for(aantal=0; aantal<aantalboten; aantal++)
printf(" %d %3d %7d   %-7s %3d\n",
    aantal, haven[aantal].lignr, haven[aantal].kenteken, haven[aantal].kleur, haven[aantal].passagiers);
 
 
free(qb);
return 0;
}
 
int vgl(const void* p, const void* q) {
    BOOT a=*(BOOT*)p;
    BOOT b=*(BOOT*)q;
    return a.kenteken-b.kenteken;
}
 
void toon_tab(BOOT* tab, int n) {
int i;
for(i=0; i<n; i++) {
printf(" %d %3d %7d   %-7s %3d\n",
        i, tab[i].lignr, tab[i].kenteken, tab[i].kleur, tab[i].passagiers);
 }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru