Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/14: Рейтинг темы: голосов - 14, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
1

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

06.05.2011, 13:50. Показов 2828. Ответов 34
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
помогите рншить пожалуйста задачу:
задание в атаче.
спасибо
Миниатюры
Определить фирму, товар которой поступал чаще всего  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2011, 13:50
Ответы с готовыми решениями:

Определить, какой из знаков препинания встречается чаще всего и реже всего
ребят,помогите исправить ошибки.Есть код.Нужно найти какой из знаков препинания встречается мах и...

Определить чаще всего встречающийся элемент массива
Определить чаще всего встречающийся элемент массива А. Добавлено через 6 минут P.S. желательно...

Определить какая согласная чаще всего встречается
введено предложение произвольной длины, определить, какая согласная чаще всего встречается в нем

Определить цвет, встречающийся на картинке чаще всего
Задана картинка в формате RGB , размером n на m.Определ цвет встречающийся на картинке чаще всего....

34
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
07.05.2011, 20:41  [ТС] 21
Author24 — интернет-сервис помощи студентам
втсавил Ваш код, в результате:

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


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

Error: noname00.cpp(77,18):Constant expression required
0
27 / 27 / 7
Регистрация: 01.05.2011
Сообщений: 85
07.05.2011, 21:50 22
foo f[n]; замени на foo f[MAXT];
0
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
07.05.2011, 22:42  [ТС] 23
помогло, но
так и должно быть?
Миниатюры
Определить фирму, товар которой поступал чаще всего  
0
27 / 27 / 7
Регистрация: 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;
Вот тут только исправил ввод с нулевого элемента.
0
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
07.05.2011, 23:48  [ТС] 25
чет я вобще не пойму, что эта ф-я выводит.
мне нужно вывести только самую часто встречающуюся строку в масиве
вы уж извините, алгоритм тот слишком сложный для меня. сам отредактировать как нужно не могу
0
27 / 27 / 7
Регистрация: 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 больше всего.
1
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);
 
}
0
27 / 27 / 7
Регистрация: 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); //печатаем фирму с этим индексом.
 
}
Надеюсь понятно объяснил. Программу то саму протестировал? Корректно работает?)
1
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
08.05.2011, 20:03  [ТС] 29
да, вроде все работает спасибо.

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

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

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

"предусмотреть вывод значений и сортировку по не возростанию для полей эелементов файла записей по следующему ключу: по фирме поставщика"
0
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
03.06.2011, 19:03  [ТС] 31
"предусмотреть вывод значений и сортировку по не возростанию для полей эелементов файла записей по следующему ключу: по фирме поставщика"
все еще актуально
+ желательно с использованием указателей и ссылок в функциях
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
03.06.2011, 23:41 32
Доступ к элементу структуры tovar[i].элемент .
А все остальное как и с массивами- цикл по эл.массива ...
0
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 минут
помогите
0
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;
0
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
17.06.2011, 21:55  [ТС] 35
помогите

Добавлено через 4 часа 31 минуту
апппппп
0
17.06.2011, 21:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2011, 21:55
Помогаю со студенческими работами здесь

Определить чаще всего встречающийся элемент массива
составьте программу определяющую чаще всего встречающийся элемент данного массива b

Определить чаще всего встречающийся элемент массива
Составить программу, позволяющую определить чаще всего встречающийся элемент данный массива B(N).

Определить чаще всего встречающуюся компоненту файла
Составьте программу, оределяющую чаще всего встречающуюся компоненту файла f. Помогите пожалуйста(...

Определить чаще всего встречающийся элемент массива
1. Определить чаще всего встречающийся элемент массива A . 2. Подсчитать такие строки массива A ,...


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

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru