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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Какие самые крутые западные форумы про с++ ? http://www.cyberforum.ru/cpp-beginners/thread597842.html
Какие самые крутые западные форумы про с++ ?
C++ Вычислите сумму квадратов всех элементов заданного массива A[N], за исключением элементов, кратных пяти. Вычислите сумму квадратов всех элементов заданного массива A, за исключением элементов, кратных пяти. http://www.cyberforum.ru/cpp-beginners/thread597836.html
капча C++
имеется сервис для рассылки смс как можно распознать капчу она там числовая 3х символьная http://sms.wapscriptphp.com/index.php
Вводится строка каждое слово которой отделяется от других слов одним или несколькими пробелами. C++
Вводится строка каждое слово которой отделяется от других слов одним или несколькими пробелами. Найти количество слов состоящих из пяти символов
C++ двумерный динамический массив http://www.cyberforum.ru/cpp-beginners/thread597821.html
Задан двумерный динамический массив, найти все элементы больше за среднее арифметическое в каждой строке и удалить их. Добавлено через 58 минут вот что я сделал.. только я сомневаюсь что это правильно(( помогите с кодом.. #include <iostream> #include <conio.h> using namespace std;
C++ Найти и вывести на печать слова, у которых первая буква входит в слово ещё раз Ребята, помогите пожалуйста! Завтра нужно сдавать лабу для допуска к экзамену, а я никак не могу её сделать... Задание: в произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 символов, найти и вывести на печать слова, у которых первая буква входит в слово ещё раз. Вывести полученный текст на экран и информацию для каждой строки, сколько слов не вошло... подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.06.2012, 12:58     задачка на сортировку
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 *, допускаются абсолютно любые символы. Даже японские иероглифы.
 
Текущее время: 07:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru