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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Taiger
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 41
#1

задачка на сортировку - C++

06.06.2012, 12:24. Просмотров 1332. Ответов 30
Метки нет (Все метки)

есть файл input.txt.

\фио \возраст \табелный
иванов 30 30
петров 20 45
сидоров 20 10
перепупкин 25 15
нужно чтобы
отсортировтаь список работающих по убыванию возраста, для одинакового возраста отсортировать по возрастанию табельного номера.
С приминением процедур и функций
Решение в out.txt
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2012, 12:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос задачка на сортировку (C++):

Задачка на сортировку массива - C++
Дан массив, содержащий n элементов.Требуется отсортировать элементы массива в порядке возрастания, отбрасывая при этом все повторяющиеся...

Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом - C++
Здравствуйте. Я не как не могу разобраться.Помогите. У меня есть листинг сортировки вставками: #include "stdafx.h" #include...

Подскажите как эту сортировку переделать в сортировку по алфавиту? - C++
Подскажите как эту сортировку переделать в сортировку по алфавиту?? vector<std::pair<string, int>> popularAuthor; ...

Сортировку вставками меняем на сортировку слиянием - C++
Код программы выполняет сортировку массива вставками. Как сюда вставить код сортировки массива методом слияния, вместо метода вставками,что...

сортировку по Tag и сортировку по Eng - C++
Есть структура: struct _1C { string Tag; string Rus; string Eng; _1C(const string &Tag, const string &Rus, const string...

Задача на сортировку - C++
Не понимаю в чем дело( Прошу помочь с кодом) #include <iostream> using namespace std; int random (int A) { int mas,i; ...

30
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
06.06.2012, 16:08 #16
Как в моём вложении. Между ячейками табуляция, в словосочетании "табельный номер" - пробел. Перевод строки виндузячий (двумя символами). Если никсовый (одним символом), то ввод может и справится, а вывод всё равно будет с виндузячим переводом строки.
1
Вложения
Тип файла: txt input.txt (84 байт, 12 просмотров)
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
06.06.2012, 16:12 #17
Цитата Сообщение от Taiger Посмотреть сообщение
unsigend int age;
ну правильно, очепятка же
C++
1
unsigned int age;
.

Добавлено через 1 минуту
Цитата Сообщение от Taiger Посмотреть сообщение
в кавычках надо подставить название файлов?
нет, они спецаильно пустые.

Добавлено через 1 минуту
Цитата Сообщение от Taiger Посмотреть сообщение
if (s=="ФИО\tвозраст\tтабельный номер")
однако странно. Открой string.h и кидай сюда его декларацию (от class string до закрывающей фигурной скобки и точки с запятой).
1
Taiger
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 41
06.06.2012, 16:16  [ТС] #18
if ((InputFileName!="")&&(OutputFileName!=""))
в кавычки? вставить импут оутпут?

Ругается на <fstream.h> но сач ин деректори.
Если убрать букву h начинает матерится на if (s=="ФИО\tвозраст\tтабельный номер")
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
06.06.2012, 16:24 #19
Цитата Сообщение от Taiger Посмотреть сообщение
в кавычки? вставить импут оутпут?
Ничего! Это проверка на жим два раза кочерги без ввода.

Добавлено через 52 секунды
Цитата Сообщение от Taiger Посмотреть сообщение
Ругается на <fstream.h> но сач ин деректори.
попробуй убрать и посмотри, что скажет на файловые потоки.

Добавлено через 59 секунд
Цитата Сообщение от Taiger Посмотреть сообщение
if (s=="ФИО\tвозраст\tтабельный номер")
давай декларацию стрингов.
1
Taiger
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 41
06.06.2012, 16:46  [ТС] #20
не нашел там побобного
куда фалик выслать? мой скайп n_tager
в вашем скайпе 42 совпадения
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
06.06.2012, 17:08 #21
вложить много? Тогда на посту. codesite@yandex.ru.
1
Taiger
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 41
06.06.2012, 17:18  [ТС] #22
улетело
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
06.06.2012, 17:22 #23
давай и include "strings.h"
1
Taiger
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 41
06.06.2012, 17:27  [ТС] #24
там
#if !definded(_STRINGS_H_)
# define _STRINGS_H_ 1
# include <string.h>
#endif
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
06.06.2012, 17:28 #25
ищи в проекте string s, правой кнопкой по string, find declaration. Идай весть файл, на какой передёт.
1
Taiger
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 41
06.06.2012, 20:27  [ТС] #26
и еше есть стринг
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
#ifndef _SSP_STRING_H
#define _SSP_STRING_H 1
 
#include <ssp.h>
#include_next <string.h>
 
#if __SSP_FORTIFY_LEVEL > 0
 
#undef memcpy
#undef memmove
#undef memset
#undef strcat
#undef strcpy
#undef strncat
#undef strncpy
#undef mempcpy
#undef stpcpy
#undef bcopy
#undef bzero
 
#define memcpy(dest, src, len) \
  ((__ssp_bos0 (dest) != (size_t) -1)                   \
   ? __builtin___memcpy_chk (dest, src, len, __ssp_bos0 (dest))     \
   : __memcpy_ichk (dest, src, len))
static inline __attribute__((__always_inline__)) void *
__memcpy_ichk (void *__restrict__ __dest, const void *__restrict__ __src,
           size_t __len)
{
  return __builtin___memcpy_chk (__dest, __src, __len, __ssp_bos0 (__dest));
}
 
 
#define memmove(dest, src, len) \
  ((__ssp_bos0 (dest) != (size_t) -1)                   \
   ? __builtin___memmove_chk (dest, src, len, __ssp_bos0 (dest))        \
   : __memmove_ichk (dest, src, len))
static inline __attribute__((__always_inline__)) void *
__memmove_ichk (void *__dest, const void *__src, size_t __len)
{
  return __builtin___memmove_chk (__dest, __src, __len, __ssp_bos0 (__dest));
}
 
 
#define mempcpy(dest, src, len) \
  ((__ssp_bos0 (dest) != (size_t) -1)                   \
   ? __builtin___mempcpy_chk (dest, src, len, __ssp_bos0 (dest))    \
   : __mempcpy_ichk (dest, src, len))
static inline __attribute__((__always_inline__)) void *
__mempcpy_ichk (void *__restrict__ __dest, const void *__restrict__ __src,
        size_t __len)
{
  return __builtin___mempcpy_chk (__dest, __src, __len, __ssp_bos0 (__dest));
}
 
 
#define memset(dest, ch, len) \
  ((__ssp_bos0 (dest) != (size_t) -1)                   \
   ? __builtin___memset_chk (dest, ch, len, __ssp_bos0 (dest))      \
   : __memset_ichk (dest, ch, len))
static inline __attribute__((__always_inline__)) void *
__memset_ichk (void *__dest, int __ch, size_t __len)
{
  return __builtin___memset_chk (__dest, __ch, __len, __ssp_bos0 (__dest));
}
 
#define bcopy(src, dest, len) ((void) \
 ((__ssp_bos0 (dest) != (size_t) -1)                    \
   ? __builtin___memmove_chk (dest, src, len, __ssp_bos0 (dest))    \
   : __memmove_ichk (dest, src, len)))
#define bzero(dest, len) ((void) \
  ((__ssp_bos0 (dest) != (size_t) -1)                   \
   ? __builtin___memset_chk (dest, '\0', len, __ssp_bos0 (dest))    \
   : __memset_ichk (dest, '\0', len)))
 
 
#define strcpy(dest, src) \
  ((__ssp_bos (dest) != (size_t) -1)                    \
   ? __builtin___strcpy_chk (dest, src, __ssp_bos (dest))       \
   : __strcpy_ichk (dest, src))
static inline __attribute__((__always_inline__)) char *
__strcpy_ichk (char *__restrict__ __dest, const char *__restrict__ __src)
{
  return __builtin___strcpy_chk (__dest, __src, __ssp_bos (__dest));
}
 
 
#define stpcpy(dest, src) \
  ((__ssp_bos (dest) != (size_t) -1)                    \
   ? __builtin___stpcpy_chk (dest, src, __ssp_bos (dest))       \
   : __stpcpy_ichk (dest, src))
static inline __attribute__((__always_inline__)) char *
__stpcpy_ichk (char *__restrict__ __dest, const char *__restrict__ __src)
{
  return __builtin___stpcpy_chk (__dest, __src, __ssp_bos (__dest));
}
 
 
#define strncpy(dest, src, len) \
  ((__ssp_bos (dest) != (size_t) -1)                    \
   ? __builtin___strncpy_chk (dest, src, len, __ssp_bos (dest))     \
   : __strncpy_ichk (dest, src, len))
static inline __attribute__((__always_inline__)) char *
__strncpy_ichk (char *__restrict__ __dest, const char *__restrict__ __src,
        size_t __len)
{
  return __builtin___strncpy_chk (__dest, __src, __len, __ssp_bos (__dest));
}
 
 
#define strcat(dest, src) \
  ((__ssp_bos (dest) != (size_t) -1)                    \
   ? __builtin___strcat_chk (dest, src, __ssp_bos (dest))       \
   : __strcat_ichk (dest, src))
static inline __attribute__((__always_inline__)) char *
__strcat_ichk (char *__restrict__ __dest, const char *__restrict__ __src)
{
  return __builtin___strcat_chk (__dest, __src, __ssp_bos (__dest));
}
 
 
#define strncat(dest, src, len) \
  ((__ssp_bos (dest) != (size_t) -1)                    \
   ? __builtin___strncat_chk (dest, src, len, __ssp_bos (dest))     \
   : __strncat_ichk (dest, src, len))
static inline __attribute__((__always_inline__)) char *
__strncat_ichk (char *__restrict__ __dest, const char *__restrict__ __src,
        size_t __len)
{
  return __builtin___strncat_chk (__dest, __src, __len, __ssp_bos (__dest));
}
 
#endif /* __SSP_FORTIFY_LEVEL > 0 */
#endif /* _SSP_STRING_H */
 
[size="1"][color="grey"][I]Добавлено через 8 минут[/I][/color][/size]
#ifndef _STRING_H_
#define _STRING_H_
 
/* All the headers include this file. */
#include <_mingw.h>
 
/*
 * Define size_t, wchar_t and NULL
 */
#define __need_size_t
#define __need_wchar_t
#define __need_NULL
#ifndef RC_INVOKED
#include <stddef.h>
#endif  /* Not RC_INVOKED */
 
#ifndef RC_INVOKED
 
#ifdef __cplusplus
extern "C" {
#endif
 
/*
 * Prototypes of the ANSI Standard C library string functions.
 */
_CRTIMP void* __cdecl __MINGW_NOTHROW   memchr (const void*, int, size_t) __MINGW_ATTRIB_PURE;
_CRTIMP int __cdecl __MINGW_NOTHROW     memcmp (const void*, const void*, size_t) __MINGW_ATTRIB_PURE;
_CRTIMP void* __cdecl __MINGW_NOTHROW   memcpy (void*, const void*, size_t);
_CRTIMP void* __cdecl __MINGW_NOTHROW   memmove (void*, const void*, size_t);
_CRTIMP void* __cdecl __MINGW_NOTHROW   memset (void*, int, size_t);
_CRTIMP char* __cdecl __MINGW_NOTHROW   strcat (char*, const char*);
_CRTIMP char* __cdecl __MINGW_NOTHROW   strchr (const char*, int)  __MINGW_ATTRIB_PURE;
_CRTIMP int __cdecl __MINGW_NOTHROW strcmp (const char*, const char*)  __MINGW_ATTRIB_PURE;
_CRTIMP int __cdecl __MINGW_NOTHROW strcoll (const char*, const char*); /* Compare using locale */
_CRTIMP char* __cdecl __MINGW_NOTHROW   strcpy (char*, const char*);
_CRTIMP size_t __cdecl __MINGW_NOTHROW  strcspn (const char*, const char*)  __MINGW_ATTRIB_PURE;
_CRTIMP char* __cdecl __MINGW_NOTHROW   strerror (int); /* NOTE: NOT an old name wrapper. */
 
_CRTIMP size_t __cdecl __MINGW_NOTHROW  strlen (const char*)  __MINGW_ATTRIB_PURE;
_CRTIMP char* __cdecl __MINGW_NOTHROW   strncat (char*, const char*, size_t);
_CRTIMP int __cdecl __MINGW_NOTHROW strncmp (const char*, const char*, size_t)  __MINGW_ATTRIB_PURE;
_CRTIMP char* __cdecl __MINGW_NOTHROW   strncpy (char*, const char*, size_t);
_CRTIMP char* __cdecl __MINGW_NOTHROW   strpbrk (const char*, const char*)  __MINGW_ATTRIB_PURE;
_CRTIMP char* __cdecl __MINGW_NOTHROW   strrchr (const char*, int)  __MINGW_ATTRIB_PURE;
_CRTIMP size_t __cdecl __MINGW_NOTHROW  strspn (const char*, const char*)  __MINGW_ATTRIB_PURE;
_CRTIMP char* __cdecl __MINGW_NOTHROW   strstr (const char*, const char*)  __MINGW_ATTRIB_PURE;
_CRTIMP char* __cdecl __MINGW_NOTHROW   strtok (char*, const char*);
_CRTIMP size_t __cdecl __MINGW_NOTHROW  strxfrm (char*, const char*, size_t);
 
#ifndef __STRICT_ANSI__
/*
 * Extra non-ANSI functions provided by the CRTDLL library
 */
_CRTIMP char* __cdecl __MINGW_NOTHROW   _strerror (const char *);
_CRTIMP void* __cdecl __MINGW_NOTHROW   _memccpy (void*, const void*, int, size_t);
_CRTIMP int __cdecl __MINGW_NOTHROW     _memicmp (const void*, const void*, size_t);
_CRTIMP char* __cdecl __MINGW_NOTHROW   _strdup (const char*) __MINGW_ATTRIB_MALLOC;
_CRTIMP int __cdecl __MINGW_NOTHROW _strcmpi (const char*, const char*);
_CRTIMP int __cdecl __MINGW_NOTHROW _stricmp (const char*, const char*);
_CRTIMP int __cdecl __MINGW_NOTHROW _stricoll (const char*, const char*);
_CRTIMP char* __cdecl __MINGW_NOTHROW   _strlwr (char*);
_CRTIMP int __cdecl __MINGW_NOTHROW _strnicmp (const char*, const char*, size_t);
_CRTIMP char* __cdecl __MINGW_NOTHROW   _strnset (char*, int, size_t);
_CRTIMP char* __cdecl __MINGW_NOTHROW   _strrev (char*);
_CRTIMP char* __cdecl __MINGW_NOTHROW   _strset (char*, int);
_CRTIMP char* __cdecl __MINGW_NOTHROW   _strupr (char*);
_CRTIMP void __cdecl __MINGW_NOTHROW    _swab (const char*, char*, size_t);
 
#ifdef __MSVCRT__
_CRTIMP int __cdecl __MINGW_NOTHROW  _strncoll(const char*, const char*, size_t);
_CRTIMP int __cdecl __MINGW_NOTHROW  _strnicoll(const char*, const char*, size_t);
#endif
 
#ifndef _NO_OLDNAMES
/*
 * Non-underscored versions of non-ANSI functions. They live in liboldnames.a
 * and provide a little extra portability. Also a few extra UNIX-isms like
 * strcasecmp.
 */
_CRTIMP void* __cdecl __MINGW_NOTHROW   memccpy (void*, const void*, int, size_t);
_CRTIMP int __cdecl __MINGW_NOTHROW memicmp (const void*, const void*, size_t);
_CRTIMP char* __cdecl __MINGW_NOTHROW   strdup (const char*) __MINGW_ATTRIB_MALLOC;
_CRTIMP int __cdecl __MINGW_NOTHROW strcmpi (const char*, const char*);
_CRTIMP int __cdecl __MINGW_NOTHROW stricmp (const char*, const char*);
int __cdecl __MINGW_NOTHROW strcasecmp (const char*, const char *);
#ifndef __NO_INLINE__
__CRT_INLINE int __cdecl __MINGW_NOTHROW
strcasecmp (const char * __sz1, const char * __sz2)
  {return _stricmp (__sz1, __sz2);}
#endif
_CRTIMP int __cdecl __MINGW_NOTHROW stricoll (const char*, const char*);
_CRTIMP char* __cdecl __MINGW_NOTHROW   strlwr (char*);
_CRTIMP int __cdecl __MINGW_NOTHROW strnicmp (const char*, const char*, size_t);
int  __cdecl __MINGW_NOTHROW strncasecmp (const char *, const char *, size_t);
#ifndef __NO_INLINE__
__CRT_INLINE int __cdecl __MINGW_NOTHROW
strncasecmp (const char * __sz1, const char * __sz2, size_t __sizeMaxCompare)
  {return _strnicmp (__sz1, __sz2, __sizeMaxCompare);}
#endif
_CRTIMP char* __cdecl __MINGW_NOTHROW   strnset (char*, int, size_t);
_CRTIMP char* __cdecl __MINGW_NOTHROW   strrev (char*);
_CRTIMP char* __cdecl __MINGW_NOTHROW   strset (char*, int);
_CRTIMP char* __cdecl __MINGW_NOTHROW   strupr (char*);
#ifndef _UWIN
_CRTIMP void __cdecl __MINGW_NOTHROW    swab (const char*, char*, size_t);
#endif /* _UWIN */
#endif /* _NO_OLDNAMES */
 
#endif  /* Not __STRICT_ANSI__ */
 
#ifndef _WSTRING_DEFINED
/*
 * Unicode versions of the standard calls.
 * Also in wchar.h, where they belong according to ISO standard.
 */
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcscat (wchar_t*, const wchar_t*);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcschr (const wchar_t*, wchar_t);
_CRTIMP int __cdecl __MINGW_NOTHROW wcscmp (const wchar_t*, const wchar_t*);
_CRTIMP int __cdecl __MINGW_NOTHROW wcscoll (const wchar_t*, const wchar_t*);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcscpy (wchar_t*, const wchar_t*);
_CRTIMP size_t __cdecl __MINGW_NOTHROW  wcscspn (const wchar_t*, const wchar_t*);
/* Note:  _wcserror requires __MSVCRT_VERSION__ >= 0x0700.  */
_CRTIMP size_t __cdecl __MINGW_NOTHROW  wcslen (const wchar_t*);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsncat (wchar_t*, const wchar_t*, size_t);
_CRTIMP int __cdecl __MINGW_NOTHROW wcsncmp(const wchar_t*, const wchar_t*, size_t);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsncpy(wchar_t*, const wchar_t*, size_t);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcspbrk(const wchar_t*, const wchar_t*);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsrchr(const wchar_t*, wchar_t);
_CRTIMP size_t __cdecl __MINGW_NOTHROW  wcsspn(const wchar_t*, const wchar_t*);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsstr(const wchar_t*, const wchar_t*);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcstok(wchar_t*, const wchar_t*);
_CRTIMP size_t __cdecl __MINGW_NOTHROW  wcsxfrm(wchar_t*, const wchar_t*, size_t);
 
#ifndef __STRICT_ANSI__
/*
 * Unicode versions of non-ANSI string functions provided by CRTDLL.
 */
 
/* NOTE: _wcscmpi not provided by CRTDLL, this define is for portability */
#define     _wcscmpi    _wcsicmp
 
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsdup (const wchar_t*);
_CRTIMP int __cdecl __MINGW_NOTHROW _wcsicmp (const wchar_t*, const wchar_t*);
_CRTIMP int __cdecl __MINGW_NOTHROW _wcsicoll (const wchar_t*, const wchar_t*);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcslwr (wchar_t*);
_CRTIMP int __cdecl __MINGW_NOTHROW _wcsnicmp (const wchar_t*, const wchar_t*, size_t);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsnset (wchar_t*, wchar_t, size_t);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsrev (wchar_t*);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsset (wchar_t*, wchar_t);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wcsupr (wchar_t*);
 
#ifdef __MSVCRT__
_CRTIMP int __cdecl __MINGW_NOTHROW  _wcsncoll(const wchar_t*, const wchar_t*, size_t);
_CRTIMP int   __cdecl __MINGW_NOTHROW _wcsnicoll(const wchar_t*, const wchar_t*, size_t);
#if __MSVCRT_VERSION__ >= 0x0700
_CRTIMP  wchar_t* __cdecl __MINGW_NOTHROW _wcserror(int);
_CRTIMP  wchar_t* __cdecl __MINGW_NOTHROW __wcserror(const wchar_t*);
#endif
#endif
 
#ifndef _NO_OLDNAMES
/* NOTE: There is no _wcscmpi, but this is for compatibility. */
int __cdecl __MINGW_NOTHROW wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2);
#ifndef __NO_INLINE__
__CRT_INLINE int __cdecl __MINGW_NOTHROW
wcscmpi (const wchar_t * __ws1, const wchar_t * __ws2)
  {return _wcsicmp (__ws1, __ws2);}
#endif
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsdup (const wchar_t*);
_CRTIMP int __cdecl __MINGW_NOTHROW wcsicmp (const wchar_t*, const wchar_t*);
_CRTIMP int __cdecl __MINGW_NOTHROW wcsicoll (const wchar_t*, const wchar_t*);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcslwr (wchar_t*);
_CRTIMP int __cdecl __MINGW_NOTHROW wcsnicmp (const wchar_t*, const wchar_t*, size_t);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsnset (wchar_t*, wchar_t, size_t);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsrev (wchar_t*);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsset (wchar_t*, wchar_t);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW wcsupr (wchar_t*);
#endif  /* Not _NO_OLDNAMES */
 
#endif  /* Not strict ANSI */
 
#define _WSTRING_DEFINED
#endif  /* _WSTRING_DEFINED */
 
#ifdef __cplusplus
Добавлено через 40 минут
У вас то она запускается без каприз?

Добавлено через 2 часа 9 минут
оставим до завтра.
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
07.06.2012, 07:10 #27
У меня на том компе дисплей сломан, протестить не могу.
0
Taiger
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 41
07.06.2012, 15:52  [ТС] #28
А на этом запускается?

Добавлено через 45 секунд
К завтра бы добить к вечеру.

Добавлено через 4 часа 45 минут
а не мозет заклбчатся проблемма в русском языке что он не понимает его?
может напистать транслитом?
0
Taiger
0 / 0 / 0
Регистрация: 05.06.2012
Сообщений: 41
08.06.2012, 17:13  [ТС] #29
При компиляции на с++ билдер 6
начинает ругатся на struct TPersonsList;
{
[C++ Error] Unit1.cpp(13): E2040 Declaration terminated incorrectly

В какой тогда лутше компилить?
В дев++ ругается на фалик стрин. и утыкается в строчки if (s=="табельный номер\tФИО\tвозраст")
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
10.06.2012, 12:58 #30
std::string вместо string. клава неисправна.

Добавлено через 21 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
struct TPersonsList;
{
*TPerson Data;
*TPerson *next;
};
C++
1
2
3
4
5
struct TPersonsList
{
*TPerson Data;
*TPersonsList *next;
};
Добавлено через 20 минут
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
#include <iostream.h>
#include <fstream.h>
#include <string.h>
struct TPerson
{
 string FIO;
 unsigend int age;
 unsigend int namber;
};
 
struct TPersonsList
{
 TPerson Data;
 TPersonsList *next;
};
 
TPersonsList *list=nullptr;
 
bool FormatAnalize(std::string s, int *Positions)
{
 if (s=="ФИО\tвозраст\tтабельный номер")
 {
  Positions[0]=0;
  Positions[1]=1;
  Positions[2]=2;
  return true;
 }
 if (s=="ФИО\tтабельный номер"\tвозраст)
 {
  Positions[0]=0;
  Positions[1]=2;
  Positions[2]=1;
  return true;
 }
 if (s=="возраст\tФИО\tтабельный номер")
 {
  Positions[0]=1;
  Positions[1]=0;
  Positions[2]=2;
  return true;
 }
 if (s=="возраст\tтабельный номер"\tФИО)
 {
  Positions[0]=2;
  Positions[1]=0;
  Positions[2]=1;
  return true;
 }
 if (s=="табельный номер\tФИО\tвозраст")
 {
  Positions[0]=1;
  Positions[1]=2;
  Positions[2]=0;
  return true;
 }
 if (s=="табельный номер\tвозраст\tФИО")
 {
  Positions[0]=2;
  Positions[1]=1;
  Positions[2]=0;
  return true;
 }
 return false;
}
 
void GetSubs(sting s, string *subs)
{
 unsigend int ic, isub, L;
 char c;
 subs[0]="";
 subs[1]="";
 subs[2]="";
 for (L=s.length(), ic=1, isub=0; ic<=L; ++ic)
 {
  c=s[ic];
  if (c=='\t')
  {
   ++isub;
  }
  else
  {
   subs[isub]=subs[isub]+c;
  }
 } 
}
 
unsigend int MyIntToStr(sritn s)
{
 unsigend int r, i, L;
 char c;
 r=0;
 for (i=1, L=s.length(); i<=L; ++i)
 {
  c=s[i];
  r*=10;
  switch (c)
  {
   case '1': r+=1;
   case '2': r+=2;
   case '3': r+=3;
   case '4': r+=4;
   case '5': r+=5;
   case '6': r+=6;
   case '7': r+=7;
   case '8': r+=8;
   case '9': r+=9;
  }
 }
 return r;
}
 
void free(TPersonsList *&list)
{
 TPersonsList *b;
 while (list!=nullptr)
 {
  b=list;
  delete list;
  list=b;
 }
}
 
void load(std::strigng &FileName, TPersonsList *&list)
{
 std::srting buffer;
 std::string subs[3];
 std::ifsteam file;
 int Positions[3];
 list *p;
 file.open(&FileName);
 file>>s;
 if (!FormatAnalize(s, Positions))
 {
  return;
 }
 while (!EOF(file))
 {
  file>>s;
  if (list==nullptr)
  {
   list=new TPersonsList;
   p=list;
  }
  else
  {
   p->next=new TPersonsList;
   p=p->next;
  }
  p->next=nullptr;
  GetSubs(s, subs);
  p->Data.FIO=subs[0];
  p->Data.age=MyIntToStr(subs[1]);
  p->Data.number=MyIntToStr(subs[2]);
 }
 file.close(); 
}
 
void sort(TPersonsList *list)
{
 TPersonsList *i;
 TPersonsList *j;
 TPersonsList *m;
 TPerson t;
 if (list==nullptr)
 {
  return;
 }
 for (i=list; i->next!=nullptr; i=i->next)
 {
  for (j=i->next, m=i; j!=nullptr; j=j->next)
  {
   if ((m->Data->age<j->age)||((m->Data->age==j->age)&&(m->Data->number>j->Data->number)))
   {
    m=j;
   }
  }
  if (m!=i)
  {
   t=*i->Data;
   *i->Data=*m->Data;
   *m->Data=t;
  }
 }
}
 
void save(std::strigng &FileName, TPersonsList *list)
{
 TPersonsList *p;
 std::ofsteam file;
 file->open(FileName);
 file<<"ФИО\tвозраст<<таблеьный номер";
 for (p=list; p!=nullptr; p=p->next)
 {
  file<<"\n\r"<<p->Data.FIO<<'\t'<<p->Data.age<<'\t'<<p-.Data.number;
 }
 file.close();
}
 
int main()
{
 std::string InputFileName;
 std::string OutputFileName;
 do
 {
  std::cin>>InputFileName;
  std::cin>>OutputFileName;
  if ((InputFileName!="")&&(OutputFileName!=""))
  {
   load (InputFileName, list);
   sort(list);
   save(InputFileName, list);
   free(list);
  }
 } while ((InputFileName!="")&&(OutputFileName!=""));
 return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от Taiger Посмотреть сообщение
А на этом запускается?
На этом нет компилятора.

Добавлено через 2 минуты
Цитата Сообщение от Taiger Посмотреть сообщение
а не мозет заклбчатся проблемма в русском языке что он не понимает его?
может напистать транслитом?
Тогда и файл должен иметь транслитовый заголовок. Но в стринговых значениях, включая нультерминальные по char *, допускаются абсолютно любые символы. Даже японские иероглифы.
0
10.06.2012, 12:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2012, 12:58
Привет! Вот еще темы с ответами:

Выполнить сортировку - C++
Выполнить сортировку целочисленного массива (поиск в массиве) из n элементов. Алгоритм сортировки (поиска) оформить в виде функции.Метод...

Задача на сортировку - C++
Друзья, нужна помощь с кодом) Выводит полную чушь( Условие задачи: есть одноименный массив длиной 40. Отсортировать методом выбора...

сортировку массива - C++
упорядочить строки целочисленной прямоугольный матрицы по возрастанию количество одинаковых элементов в каждой строке. Найти номер...

Изменить сортировку - C++
Добрый вечер! Можете изменить эту сортировку на сортировку методом Шелла? #include &lt;iostream&gt; using namespace std; int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.