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

Определить фирму, товар которой поступал чаще всего - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
06.05.2011, 13:50     Определить фирму, товар которой поступал чаще всего #1
помогите рншить пожалуйста задачу:
задание в атаче.
спасибо
Миниатюры
Определить фирму, товар которой поступал чаще всего  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2011, 13:50     Определить фирму, товар которой поступал чаще всего
Посмотрите здесь:

Определить какое слово в строке встречается чаще всего C++
C++ работа с структурами (определить группу предметов которые чаще всего изымались)
C++ Определить, какое слово встречается в строке чаще всего
Определить какая согласная чаще всего встречается C++
Определить, какое слово встречается в строке чаще всего C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
07.05.2011, 20:41  [ТС]     Определить фирму, товар которой поступал чаще всего #21
втсавил Ваш код, в результате:

Error: noname00.cpp(5,16):Namespace name expected
Error: noname00.cpp(77,18):Constant expression required


если убрать пространство имен, то только

Error: noname00.cpp(77,18):Constant expression required
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
07.05.2011, 21:50     Определить фирму, товар которой поступал чаще всего #22
foo f[n]; замени на foo f[MAXT];
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
07.05.2011, 22:42  [ТС]     Определить фирму, товар которой поступал чаще всего #23
помогло, но
так и должно быть?
Миниатюры
Определить фирму, товар которой поступал чаще всего  
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
07.05.2011, 23:08     Определить фирму, товар которой поступал чаще всего #24
Ну да.
C++
1
2
for (int i=0; i<n; i++) {
      cout<<endl<<"------------------Dannie o "<<i+1<<"-om tovare------------------"<<endl<<endl;
Вот тут только исправил ввод с нулевого элемента.
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
07.05.2011, 23:48  [ТС]     Определить фирму, товар которой поступал чаще всего #25
чет я вобще не пойму, что эта ф-я выводит.
мне нужно вывести только самую часто встречающуюся строку в масиве
вы уж извините, алгоритм тот слишком сложный для меня. сам отредактировать как нужно не могу
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
07.05.2011, 23:57     Определить фирму, товар которой поступал чаще всего #26
В конец функции firm_search добавь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int more = 0, findet = 0;
int count;
    for (i = 0; i < k; i++)                
        {
                strcpy(temp, f[i].fi);
                count = 0;                      
                for (j = 0; j < n; j++)         
                        if (strcmp(temp, t[j].firm) == 0)       
                                 count++;        
                if (count > more)
                {
                    more = count;
                    findet = i;
                }   
        }
        printf("Больше всего товаров от %s\n", t[findet].firm);
Добавлено через 6 минут
Цикл на 87 строке делает новый массив со списком фирм.
Далее мы каждую фирму из этого списка сравниваем с фирмой товара и смотрим сколько раз нам она встретилась, записываем в count. переменная mоre хранит наибольшее значение count, findet индекс той фирмы, для которой count больше всего.
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
08.05.2011, 16:15  [ТС]     Определить фирму, товар которой поступал чаще всего #27
тоесть, в конечном итоге ф-я должна выглядеть так?
я прокоментировал, что мог, посмотрите правильно ли, и там где // ??? обьясните, пожалуйста, что там происходит максимально доходчиво, так как мне это все преподу прийдется расказывать и обьяснять

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
void firm_search(int n)
{
        int i, j, k, l;
        struct foo { char fi[30]; };
        foo f[MAXT];
        for (i = 0; i < n; i++)
                // ???
                strcpy(f[i].fi, t[i].firm); 
 
        //создаем новый массив со списком наших фирм и циклом вносим в него данные...
        char temp[30];
        k = n;
        for (i = 0; i < k-1; i++)
        {
                //записываем значения из f[i].fi в новый массив temp
                strcpy(temp, f[i].fi);
                // ???
                j = i + 1;
                // ???
                for (; j < k; j++)
                {
                        //сверяем значения массивов temp и f[j].fi, если = 0, то значения одинаковы
                        if (strcmp(temp, f[j].fi) == 0)
                        {
                                for (l = j; l < k; l++)
                                        // ???
                                        strcpy(f[j].fi, f[j+1].fi);
                                // ???
                                k--;
                                j = i + 1;
                        }
                }
        }
 
        int more = 0, findet = 0;
        int count;
        for (i = 0; i < k; i++)
        {       
                // ???  
                strcpy(temp, f[i].fi);
                count = 0;
                for (j = 0; j < n; j++)
                        // ???
                        if (strcmp(temp, t[j].firm) == 0)
                                 count++;
                if (count > more)
                                {
                                        more = count;
                                        findet = i;
                                }
        }
                printf("\n=================================================================\n6oJIbLLI,e Bcero ToBapa IIocTyIIuJIo oT:  %s\n", t[findet].firm);
 
}
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
08.05.2011, 19:32     Определить фирму, товар которой поступал чаще всего #28
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
void firm_search(int n)
{
        int i, j, k, l;
        struct foo { char fi[30]; };
        foo f[MAXT];
        for (i = 0; i < n; i++)
                // копируем все фирмы товаров в другой массив
                strcpy(f[i].fi, t[i].firm); 
 
        //создаем новый массив со списком наших фирм и циклом вносим в него данные...
        char temp[30];
        k = n;
        for (i = 0; i < k-1; i++)
        {
                //записываем значения из f[i].fi в temp
                strcpy(temp, f[i].fi);
                // Тут происходит удаление повторяющихся фирм
                // в темп положили 1 элемент, начинаем сравнивать со второго, поэтому j = i+1
                for (j = i + 1;; j < k; j++)
                {
                        //сверяем значения массивов temp и f[j].fi, если = 0, то значения одинаковы
                        if (strcmp(temp, f[j].fi) == 0)
                        {       // если нашли совпадение, то проходим до конца массива
                                // копируя j+1 элемент в j, тем самым затирая найденное повторение
                                //
                                for (l = j; l < k; l++)
                                        // ???
                                        strcpy(f[j].fi, f[j+1].fi);
                                // k - кол-во элементов в массиве f[].fi
                                // т.е. 1 повторяющийся элемент мы удалили, k уменьшаем на 1
                                k--;
                                j = i + 1; //начинаем проверку с начала списка.
                        }
                }
        // в итоге получаем список фирм.
        // наверно это можно сделать как то проще, при самом создании это массива
        // но это первый алгоритм который пришёл мне в голову
        }
 
        int more = 0, findet = 0;
        int count;
        // тут ищем фирму от которой больше всего товаров
        for (i = 0; i < k; i++)
        {       
                // копируем 1 название в темп
                strcpy(temp, f[i].fi);
                count = 0;
                for (j = 0; j < n; j++) // проходим по каждому товару
                        // если товар от фирмы которая лежит в temp
                        if (strcmp(temp, t[j].firm) == 0)
                                 count++;   // увеличиваем счётчик
                if (count > more) // в more будет сидеть наибольшее число повторений
                
                                {       // если нашли фирму, которая встречается чаще предыдущей
                                        more = count; // присваиваем more это число
                                        findet = i; // и запоминаем индекс фирмы
                                }
        }
                printf("\n=================================================================\n6oJIbLLI,e Bcero ToBapa IIocTyIIuJIo oT:  %s\n", t[findet].firm); //печатаем фирму с этим индексом.
 
}
Надеюсь понятно объяснил. Программу то саму протестировал? Корректно работает?)
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
08.05.2011, 20:03  [ТС]     Определить фирму, товар которой поступал чаще всего #29
да, вроде все работает спасибо.

но это пока не все...
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
15.05.2011, 17:25  [ТС]     Определить фирму, товар которой поступал чаще всего #30
опять я
как теперь найти товар с минимальной стоимостью?
как найти минимальный элемент я знаю. а вот как еще вывести название товара с этой минимальной стоимостью?

Добавлено через 35 минут
уже сделал.

помогите теперь с этим:

"предусмотреть вывод значений и сортировку по не возростанию для полей эелементов файла записей по следующему ключу: по фирме поставщика"
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
03.06.2011, 19:03  [ТС]     Определить фирму, товар которой поступал чаще всего #31
"предусмотреть вывод значений и сортировку по не возростанию для полей эелементов файла записей по следующему ключу: по фирме поставщика"
все еще актуально
+ желательно с использованием указателей и ссылок в функциях
Avazart
 Аватар для Avazart
6900 / 5140 / 252
Регистрация: 10.12.2010
Сообщений: 22,588
Записей в блоге: 17
03.06.2011, 23:41     Определить фирму, товар которой поступал чаще всего #32
Доступ к элементу структуры tovar[i].элемент .
А все остальное как и с массивами- цикл по эл.массива ...
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
13.06.2011, 10:38  [ТС]     Определить фирму, товар которой поступал чаще всего #33
помогите с сортировкой.
никак не получается.
напишите кто-то ф-ю, пожалуйста

Добавлено через 52 минуты
что то типа?
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
void sort(int n)
{
  char buf[300];
 
 
  for (int i = 1; i < n-1; i++) {
        if (t[i].firm > t[i+1].firm) {
        strcpy(buf, t[i].name);
         strcpy(t[i].name, t[i+1].name);
         strcpy(t[i+1].name, buf);
/*
         buf = t[i].firm;
         t[i].firm = t[i+1].firm;
         t[i+1].firm = buf;
 
         buf = t[i].price;
         t[i].price = t[i+1].price;
         t[i+1].price = buf;
 
         buf = t[i].kol;
         t[i].kol = t[i+1].kol;
         t[i+1].kol = buf;
 
         buf = t[i].country;
         t[i].country = t[i+1].country;
         t[i+1].country = buf;
 
         buf = t[i].day.dd;
         t[i].day.dd = t[i+1].day.dd;
         t[i+1].day.dd = buf;
 
         buf = t[i].day.mm;
         t[i].day.mm = t[i+1].day.mm;
         t[i+1].day.mm = buf;
 
         buf = t[i].day.yy;
         t[i].day.yy = t[i+1].day.yy;
         t[i+1].day.yy = buf;
*/
 
    }
     cout<<t[i].name<<endl;
      //cout<<t[i].firm<<endl;
      ///cout<<t[i].price<<endl;
      //cout<<t[i].kol<<endl;
      //cout<<t[i].country<<endl;
      //cout<<t[i].day.dd<<" ";
      //cout<<t[i].day.mm<<" ";
      //cout<<t[i].day.yy<<" ";
  }
Добавлено через 9 часов 47 минут
помогите
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
15.06.2011, 21:24  [ТС]     Определить фирму, товар которой поступал чаще всего #34
меня игнорят? помогите же, пожалуйста. срочно надо дописать программу. хотя бы сортировку. чтобы после окончания ввода предложило вывести отсортированные данные

Добавлено через 5 часов 11 минут
мда...

Добавлено через 1 час 38 минут
вот моя программа на данный момент

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
#include <iostream>
#include <conio.h>
#include <iomanip.h>
#include <string>
#include <stdio>
#define MAXT 30
 
using namespace std;
 
void scan(int n);
void firm_search( int n);
void min_price(int n);
void all_tovars(int n);
void add_in_file(int n);
void sort(int n);
 
struct date
{
        int dd, mm, yy;
};
struct tovar
{
        char name[30];
        char firm[30];
        int price;
        short int kol;
        char naimenovanie[50];
        char country[30];
        date day;
}t[MAXT];
 
int main()
{
         //setlocale(LC_ALL, "Russian");
        int n;
            cout<<"\nBBeDuTe KoJI-Bo ToBapoB, DaHHbIe o KoTopbIx 6yDeTe BBoDuTb: ";
         cin>>n; 
 
 
tovar * a = new tovar[n]; //óæå ГҐГ±ГІГј ãëîáГ*ëüГ*ûé òîâГ*Г° ГІ
                                                                    // ÷òîáû Г*ГҐ ïåðåäГ*ГўГ*ГІГј ГЄГ*æäûé Г°Г*Г§ Гў ГґГіГ*êöèþ..
 
 
        scan(n);
        //firm_search(n);
        //min_price(n);
        //all_tovars(n);
 
         getch();
        //system("pause");
 
        return 0;
 
}
 
 
void scan(int n)
{
 
 
        char x='y';
 
 
      for (int i=0; i<n; i++) {
      cout<<endl<<"------------------Dannie o "<<i+1<<"-om tovare------------------"<<endl<<endl;
 
      cout<<"HauMeHoBaHue ToBapa: ";
      cin>>t[i].name;
 
      cout<<"FupMa IIocTaBLLI,uK: ";
      cin>>t[i].firm;
 
      cout<<"cTouMocTb: ";
      cin>>t[i].price;
 
      cout<<"KoJI-Bo: ";
      cin>>t[i].kol;
 
      cout<<"cTpaHa IIocTaBLLI,uK: ";
      cin>>t[i].country;
 
      cout<<"DaTa IIocTyIIJIeHu9I ToBapa: "<<endl; // ìîæГ*Г® ââîäèòü 3 Г·ГЁГ±Г«Г* ÷åðåç ïðîáåë, "6 5 2011"
      cin>>t[i].day.dd;
      cin>>t[i].day.mm;
      cin>>t[i].day.yy;
      }
 
            firm_search(n);
            min_price(n);
            all_tovars(n);
 
cout<<"OTcopTuPoBaTb u BbIBeCTu? (y/n)"<<endl;
cin>>x;
 
if ((x=='y') || (x=='Y')) {
//sort(n);
 
string b[100];
 int i;
 
 b[0]=t[0].firm;
 for (i = 0; i < n; i++) {
 
    if (t[i].firm > b[0]) {
        b[0]=t[i].firm;
 cout<<"------------------Dannie o "<<i+1<<"-om tovare------------------ \n\n";
 cout<<"HauMeHoBaHue ToBapa: "<<t[i].name<<endl;
 cout<<"FupMa IIocTaBLLI,uK: "<<t[i].firm<<endl;
 cout<<"cTouMocTb: "<<t[i].price<<endl;
 cout<<"KoJI-Bo: "<<t[i].kol<<endl;
 cout<<"cTpaHa IIocTaBLLI,uK: "<<t[i].country<<endl;
 cout<<"DaTa IIocTyIIJIeHu9I ToBapa: "<<t[i].day.dd<<" "<<t[i].day.mm<<" "<<t[i].day.yy<<endl;
 }
 }
 
 
 
}
else {
cout<<"3aKoH4uTb Pa6oTy? (y/n)"<<endl;
cin>>x;
if ((x=='y') || (x=='Y')) {
    exit (1);
}
else
scan(n);
 
}
add_in_file(n);
}
 
void firm_search(int n)
{
        int i, j, k, l;
        struct foo { char fi[30]; };
        foo f[MAXT];
        for (i = 0; i < n; i++)
                // êîïèðóåì ГўГ±ГҐ ôèðìû òîâГ*ðîâ Гў äðóãîé Г¬Г*Г±Г±ГЁГў
                strcpy(f[i].fi, t[i].firm); 
 
        //ñîçäГ*ГҐГ¬ Г*îâûé Г¬Г*Г±Г±ГЁГў Г±Г® ñïèñêîì ôèðì ГЁ öèêëîì ГўГ*îñèì Гў Г*ГҐГЈГ® Г¤Г*Г*Г*ûå
        char temp[30];
        k = n;
        for (i = 0; i < k-1; i++)
        {
                //Г§Г*ïèñûâГ*ГҐГ¬ Г§Г*Г*Г·ГҐГ*ГЁГї ГЁГ§ f[i].fi Гў temp
                strcpy(temp, f[i].fi);
                        // Г’ГіГІ ïðîèñõîäèò ГіГ¤Г*ëåГ*ГЁГҐ ïîâòîðÿþùèõñÿ ôèðì
                // Гў òåìï ïîëîæèëè 1 ýëåìåГ*ГІ, Г*Г*Г·ГЁГ*Г*ГҐГ¬ Г±Г°Г*ГўГ*ГЁГўГ*ГІГј Г±Г® âòîðîãî, ïîýòîìó j = i+1
                for (j = i + 1; j < k; j++)
                {
                        //ñâåðÿåì Г§Г*Г*Г·ГҐГ*ГЁГї Г¬Г*ññèâîâ temp ГЁ f[j].fi, åñëè = 0, ГІГ® Г§Г*Г*Г·ГҐГ*ГЁГї îäèГ*Г*êîâû
                        if (strcmp(temp, f[j].fi) == 0)
                        {               // åñëè Г*Г*øëè ñîâïГ*äåГ*ГЁГҐ, ГІГ® ïðîõîäèì äî ГЄГ®Г*Г¶Г* Г¬Г*Г±Г±ГЁГўГ*
                                       // êîïèðóÿ j+1 ýëåìåГ*ГІ Гў j, ГІГҐГ¬ Г±Г*ìûì Г§Г*ГІГЁГ°Г*Гї Г*Г*éäåГ*Г*îå ïîâòîðåГ*ГЁГҐ
 
                                for (l = j; l < k; l++)
                                        strcpy(f[j].fi, f[j+1].fi);
                                // k - êîë-ГўГ® ýëåìåГ*òîâ Гў Г¬Г*Г±Г±ГЁГўГҐ f[].fi
                                // ГІ.ГҐ. 1 ïîâòîðÿþùèéñÿ ýëåìåГ*ГІ ìû ГіГ¤Г*ëèëè, k óìåГ*ГјГёГ*ГҐГ¬ Г*Г* 1
                                k--;
                                j = i + 1; //Г*Г*Г·ГЁГ*Г*ГҐГ¬ ïðîâåðêó Г± Г*Г*Г·Г*Г«Г* Г±ГЇГЁГ±ГЄГ*.
                        }
                }
                // Гў èòîãå ïîëó÷Г*ГҐГ¬ ñïèñîê ôèðì.
        }
 
        int more = 0, findet = 0;
        int count;
        // ГІГіГІ ГЁГ№ГҐГ¬ ôèðìó îò êîòîðîé áîëüøå ГўГ±ГҐГЈГ® òîâГ*ðîâ
        for (i = 0; i < k; i++)
        {       
                // êîïèðóåì 1 Г*Г*çâГ*Г*ГЁГҐ Гў òåìï
                strcpy(temp, f[i].fi);
                count = 0;
                for (j = 0; j < n; j++) // ïðîõîäèì ГЇГ® ГЄГ*æäîìó òîâГ*ðó
                        // åñëè òîâГ*Г° îò ôèðìû êîòîðГ*Гї ëåæèò Гў temp
                        if (strcmp(temp, t[j].firm) == 0)
                                 count++;       // óâåëè÷èâГ*ГҐГ¬ Г±Г·ВёГІГ·ГЁГЄ
                if (count > more) // Гў more áóäåò ñèäåòü Г*Г*èáîëüøåå ÷èñëî ïîâòîðåГ*ГЁГ©
                                
                                {               // åñëè Г*Г*øëè ôèðìó, êîòîðГ*Гї âñòðå÷Г*ГҐГІГ±Гї Г·Г*Г№ГҐ ïðåäûäóùåé
                                        more = count; // ïðèñâГ*ГЁГўГ*ГҐГ¬ more ГЅГІГ® ÷èñëî
                                        findet = i; // ГЁ Г§Г*ïîìèГ*Г*ГҐГ¬ ГЁГ*äåêñ ôèðìû
                                }
        }
                printf("\n________________________________________________________________________________\n\n- 6oJIbLLI,e Bcero ToBapa IIocTyIIuJIo oT:  %s\n", t[findet].firm); //ГЇГҐГ·Г*ГІГ*ГҐГ¬ ôèðìó Г± ГЅГІГЁГ¬ ГЁГ*äåêñîì.
 
}
 
void min_price(int n)
{
    int i, min;
   char name[100];
 
   min = t[0].price;
   strcpy(name, t[0].name);
 
   for (i = 1; i < n; i++){
 
    if  (t[i].price < min){
        min = t[i].price;
        strcpy(name, t[i].name);
        }
   }
 cout<<endl<<"- ToBap c MuHuMaJIbHou' cTouMocT'y: "<<name<<endl;
}
 
void all_tovars(int n)
{
    int i, sum;
 
   sum = 0;
 
   for (i = 0; i < n; i++){
    sum+=t[i].kol;
    }
   cout<<endl<<"- Bcero IIocTyIIuJIo "<<sum<<" ToBapoB"<<"\n________________________________________________________________________________"<<endl;
}
 
/*void sort(int n)
{
 string b[100];
 int i;
 
 //b[0]=t[0].firm;
 //for (i = 1; i < n; i++) {
 
  //    if (t[i].firm > b[0]) {
     // b[0]=t[i].firm;
 cout<<"------------------Dannie o "<<i+1<<"-om tovare------------------ \n\n";
 cout<<"HauMeHoBaHue ToBapa:"<<t[i].name<<endl;
 cout<<"FupMa IIocTaBLLI,uK:"<<t[i].firm<<endl;
 cout<<"cTouMocTb:"<<t[i].price<<endl;
 cout<<"KoJI-Bo:"<<t[i].kol<<endl;
 cout<<"cTpaHa IIocTaBLLI,uK:"<<t[i].country<<endl;
 cout<<"DaTa IIocTyIIJIeHu9I ToBapa:"<<t[i].day.dd<<t[i].day.mm<<t[i].day.yy<<endl;
 
   }
 
 //}
 
 
//}
*/
 
void add_in_file(int n)
{
  FILE *fp;
  fp = fopen("data.txt", "w");
 
 
        for (int i=0; i <n; i++){
 
 
      fprintf(fp, "------------------Dannie o %d-om tovare------------------ \n\n", i+1);
      fprintf(fp, "HauMeHoBaHue ToBapa: %s \n", t[i].name);
      fprintf(fp, "FupMa IIocTaBLLI,uK: %s \n", t[i].firm);
      fprintf(fp, "cTouMocTb: %d \n", t[i].price);
      fprintf(fp, "KoJI-Bo: %d \n", t[i].kol);
      fprintf(fp, "cTpaHa IIocTaBLLI,uK: %s \n", t[i].country);
      fprintf(fp, "DaTa IIocTyIIJIeHu9I ToBapa: %d %d %d \n\n", t[i].day.dd, t[i].day.mm, t[i].day.yy);
 
      }
 
  fclose(fp);
}
 
/*
 cout<<"------------------Dannie o "<<i+1<<"-om tovare------------------ \n\n";
 cout<<"HauMeHoBaHue ToBapa:"<<t[i].name<<endl;
 cout<<"FupMa IIocTaBLLI,uK:"<<t[i].firm<<endl;
 cout<<"cTouMocTb:"<<t[i].price<<endl;
 cout<<"KoJI-Bo:"<<t[i].kol<<endl;
 cout<<"cTpaHa IIocTaBLLI,uK:"<<t[i].country<<endl;
 cout<<"DaTa IIocTyIIJIeHu9I ToBapa:"<<t[i].day.dd, t[i].day.mm, t[i].day.yy<<endl;
*/

конкретно завис на этом:

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
void scan(int n)
{
 
 
        char x='y';
 
 
      for (int i=0; i<n; i++) {
      cout<<endl<<"------------------Dannie o "<<i+1<<"-om tovare------------------"<<endl<<endl;
 
      cout<<"HauMeHoBaHue ToBapa: ";
      cin>>t[i].name;
 
      cout<<"FupMa IIocTaBLLI,uK: ";
      cin>>t[i].firm;
 
      cout<<"cTouMocTb: ";
      cin>>t[i].price;
 
      cout<<"KoJI-Bo: ";
      cin>>t[i].kol;
 
      cout<<"cTpaHa IIocTaBLLI,uK: ";
      cin>>t[i].country;
 
      cout<<"DaTa IIocTyIIJIeHu9I ToBapa: "<<endl; // ìîæГ*Г® ââîäèòü 3 Г·ГЁГ±Г«Г* ÷åðåç ïðîáåë, "6 5 2011"
      cin>>t[i].day.dd;
      cin>>t[i].day.mm;
      cin>>t[i].day.yy;
      }
 
            firm_search(n);
            min_price(n);
            all_tovars(n);
 
cout<<"OTcopTuPoBaTb u BbIBeCTu? (y/n)"<<endl;
cin>>x;
 
if ((x=='y') || (x=='Y')) {
//sort(n);
 
string b[100];
 int i;
 
 b[0]=t[0].firm;
 for (i = 0; i < n; i++) {
 
    if (t[i].firm > b[0]) {
        b[0]=t[i].firm;
 cout<<"------------------Dannie o "<<i+1<<"-om tovare------------------ \n\n";
 cout<<"HauMeHoBaHue ToBapa: "<<t[i].name<<endl;
 cout<<"FupMa IIocTaBLLI,uK: "<<t[i].firm<<endl;
 cout<<"cTouMocTb: "<<t[i].price<<endl;
 cout<<"KoJI-Bo: "<<t[i].kol<<endl;
 cout<<"cTpaHa IIocTaBLLI,uK: "<<t[i].country<<endl;
 cout<<"DaTa IIocTyIIJIeHu9I ToBapa: "<<t[i].day.dd<<" "<<t[i].day.mm<<" "<<t[i].day.yy<<endl;
 }
 }
 
 
 
}
else {
cout<<"3aKoH4uTb Pa6oTy? (y/n)"<<endl;
cin>>x;
if ((x=='y') || (x=='Y')) {
    exit (1);
}
else
scan(n);
 
}
add_in_file(n);
}


как сравнить по алфавиту данные из t[i].firm и отсортировать остальные данные относительно результата сортировки?
ума не приложу. помогите
ну явно не так.
C++
1
2
3
4
5
6
7
8
string b[100];
 int i;
 
 b[0]=t[0].firm;
 for (i = 0; i < n; i++) {
 
    if (t[i].firm > b[0]) {
        b[0]=t[i].firm;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2011, 21:55     Определить фирму, товар которой поступал чаще всего
Еще ссылки по теме:

Определить какой знак препинания(-,.:) встречается в строке чаще всего C++
C++ Определить чаще всего встречающийся элемент массива
Определить группу предметов которые чаще всего изымались на таможне (структуры) C++

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

Или воспользуйтесь поиском по форуму:
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
17.06.2011, 21:55  [ТС]     Определить фирму, товар которой поступал чаще всего #35
помогите

Добавлено через 4 часа 31 минуту
апппппп
Yandex
Объявления
17.06.2011, 21:55     Определить фирму, товар которой поступал чаще всего
Ответ Создать тему
Опции темы

Текущее время: 19:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru