Форум программистов, компьютерный форум 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++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
06.05.2011, 14:03     Определить фирму, товар которой поступал чаще всего #2
В чем именно нужна помощь? Или Вы просите написать код полностью?
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
06.05.2011, 14:50  [ТС]     Определить фирму, товар которой поступал чаще всего #3
можно и полностью, я не против

если же нет, то давайте тогда для начала разберемся как создать такую структуру, а именно дата поступления и остальное, что пошло от нее.:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <windows.h>
 
struct tovar
{
        char firm[20];
        double price;
        short int kol;
        char naimenovanie[50];
        char country[30];
        float date.....
};
Добавлено через 21 минуту
или так? и писать дату вида 12.01.2010 ?

C++
1
2
3
4
5
6
7
8
9
struct tovar
{
        char firm[20];
        double price;
        short int kol;
        char naimenovanie[50];
        char country[30];
        char date[12];
};
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
06.05.2011, 14:58     Определить фирму, товар которой поступал чаще всего #4
Согласно схеме в задании, структура вроде бы должна быть такая.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct date
{
    int dd, mm, yy;
};
struct tovar
{
        char firm[20];
        double price;
        short int kol;
        char naimenovanie[50];
        char country[30];
        date day;
};
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
06.05.2011, 16:07  [ТС]     Определить фирму, товар которой поступал чаще всего #5
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
#include <stdio.h>
#include <iostream.h>
#include <windows.h>
 
struct
 {
        int dd, mm, yy;
 }date;
struct
 {
        char name[30];
        char firm[30];
        double price;
        short int kol;
        char naimenovanie[50];
        char country[30];
        date day;
 }tovar;
 
 int n;
 
int main()
 {
   cout<<"Vedite kol-vo tovarov, dannie o kotopix bydete voditb: "<<endl;
   cin>>n;
 
   for (int i=1; i<=n; i++){
   cout<<"Dannie o "<<i<<"-om tovare"<<endl<<endl;
 
   cout<<"HauMeHoBaHue ToBapa: ";
   cin>>tovar.name;
 
   cout<<"FupMa IIocTaBLLI,uK: ";
   cin>>tovar.firm;
 
   cout<<"cTouMocTb: ";
   cin>>tovar.price;
 
   cout<<"KoJI-Bo: ";
   cin>>tovar.kol;
 
   cout<<"cTpaHa IIocTaBLLI,uK: ";
   cin>>tovar.country;
 
   cout<<"DaTa IIocTyIIJIeHu9I ToBapa: ";
   cin>>date.dd;
 
 
   }
 
 Sleep (50000);
}

Error: NONAME00.CPP(17,17):Type name expected
Error: NONAME00.CPP(17,17)eclaration missing ;


не работает.

если обьявлять название структуры - то тоже какая-то ошибка

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
#include <stdio.h>
#include <iostream.h>
#include <windows.h>
 
struct  date
 {
        int dd, mm, yy;
 };
struct  tovar
 {
        char name[30];
        char firm[30];
        double price;
        short int kol;
        char naimenovanie[50];
        char country[30];
        date day;
 };
 
 int n;
 
int main()
 {
   cout<<"Vedite kol-vo tovarov, dannie o kotopix bydete voditb: "<<endl;
   cin>>n;
 
   for (int i=1; i<=n; i++){
   cout<<"Dannie o "<<i<<"-om tovare"<<endl<<endl;
 
   cout<<"HauMeHoBaHue ToBapa: ";
   cin>>tovar.name;
 
   cout<<"FupMa IIocTaBLLI,uK: ";
   cin>>tovar.firm;
 
   cout<<"cTouMocTb: ";
   cin>>tovar.price;
 
   cout<<"KoJI-Bo: ";
   cin>>tovar.kol;
 
   cout<<"cTpaHa IIocTaBLLI,uK: ";
   cin>>tovar.country;
 
   cout<<"DaTa IIocTyIIJIeHu9I ToBapa: ";
   cin>>date.dd;
 
 
   }
 
 Sleep (50000);
}

Error: NONAME00.CPP(31,14):Improper use of typedef 'tovar'
Error: NONAME00.CPP(34,14):Improper use of typedef 'tovar'
Error: NONAME00.CPP(37,14):Improper use of typedef 'tovar'
Error: NONAME00.CPP(40,14):Improper use of typedef 'tovar'
Error: NONAME00.CPP(43,14):Improper use of typedef 'tovar'
Error: NONAME00.CPP(46,13):Improper use of typedef 'date'
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
06.05.2011, 16:42     Определить фирму, товар которой поступал чаще всего #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
tovar - твой новый тип, в исправленном коде ниже - создан массив t[] типа tovar, с ним то ты и будешь работать. Внимательно просмотри что изменилось.

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
#include <stdio.h>
#include <iostream>
#include <windows.h>
#define MAXT 30 // макс кол-во товаров
 
using namespace std;
 
struct date
{
        int dd, mm, yy;
};
struct tovar
{
        char name[30];
    char firm[30];
        double price;
        short int kol;
        char naimenovanie[50];
        char country[30];
        date day;
} t[MAXT];
 
int n;
 
int main()
 {
 
   cout<<"Vedite kol-vo tovarov, dannie o kotopix bydete voditb: "<<endl;
   cin>>n;
 
   for (int i=0; i<n; i++){
   cout<<"Dannie o "<<i<<"-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: "; // можно вводить 3 числа через пробел, "6 5 2011"
   cin>>t[i].day.dd;
    cin>>t[i].day.mm;
    cin>>t[i].day.yy;
   }
 
 Sleep (50000);
}
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
06.05.2011, 18:26  [ТС]     Определить фирму, товар которой поступал чаще всего #7
ок, благодарю.

а как теперь
- определить фирму , товар которой поступа чаще всего
- определить наименование товара с минимальной стоимостью
- определить количество товаро, поступившие за годы

ума не приложу...
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
06.05.2011, 18:52     Определить фирму, товар которой поступал чаще всего #8
- определить фирму , товар которой поступа чаще всего
Это можно свести к задаче как найти самый часто встречающийся элемент в массиве. в роли массива у нас t[i].firm

- определить наименование товара с минимальной стоимостью
Тут ищем минимальный элемент в массиве t[i].price

- определить количество товаро, поступившие за все годы
Тут что то не пойму, звучит как "определить общее число товаров", может кто еще из форумчан подскажет.
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
06.05.2011, 20:04  [ТС]     Определить фирму, товар которой поступал чаще всего #9
Цитата Сообщение от ZloyVolkey Посмотреть сообщение
- определить фирму , товар которой поступа чаще всего
Это можно свести к задаче как найти самый часто встречающийся элемент в массиве. в роли массива у нас t[i].firm
да, но как это сделать - я не знаю? какой алгоритм? с чего начать?
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
07.05.2011, 10:12     Определить фирму, товар которой поступал чаще всего #10
Проверка символа на повторяемость.
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
07.05.2011, 12:13  [ТС]     Определить фирму, товар которой поступал чаще всего #11
хм, что-то ничего не понятно , что там написано
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
07.05.2011, 12:39     Определить фирму, товар которой поступал чаще всего #12
Берём название 1ой фирмы, в цикле по всем товарам, делаем сравнение(strcmp функция) текушей проверяемой фирмы и поставщика товара, если совпадают, в счётчик повторений увеличиваем на 1, в конце цикла кладём этот счётчик в какой нибудь одномерный массив, берём название второй фирмы, и делаем то же самое. В конце в массиве счётчиков ищем максимальный элемент, индекс этого элемента укажет на фирму.
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
07.05.2011, 13:29  [ТС]     Определить фирму, товар которой поступал чаще всего #13
Вы бы не могли написать код? а то я совсем ничего не понимаю в этом
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
07.05.2011, 13:39     Определить фирму, товар которой поступал чаще всего #14
Сделай хотя бы набросок. Или напиши мини программу с обычным одномерным массивом, который считает повторения, а там помогу подогнать под структуру.
Самостоятельная работа и есть обучение, если я напишу код, вряд ли это пойдёт на пользу вам.
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
07.05.2011, 14:23  [ТС]     Определить фирму, товар которой поступал чаще всего #15
как то так
и то не работает

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
#include <windows.h>
#include <stdio.h>
 
const n=2;
int main()
{
   char a[100];
 
   cout<<"Vedite 4isJIa: "<<endl;
   for (int i=0; i<n; i++) {
   cin>>a[i];
   }
 
   for (int i=0; i<n; i++) {
   if (strcmp(a[i], a[i+1])==0)
   cout<<"estb sovpadenie";
   else
   cout<<"sovpadeni9 net";
   }
}
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
07.05.2011, 15:05     Определить фирму, товар которой поступал чаще всего #16
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <stdio.h>
#define N 10
#define M 3
 
using namespace std; 
 
int main()
{
    int a[M], b[N], c[N], count, cur, i, j, k; 
    
    cout<<"Массив a: "<<endl;   // Массив чисел, кол-во которые нужно проверить в массиве b[N]
    for (i = 0; i < M; i++) {
        cin>>a[i];
    }
    cout<<"Массив b: "<<endl;   // Проверяемый массив
    for (i = 0; i < N; i++) {
        cin>>b[i];
    }
    
    for (i = 0; i < M; i++)             // Для каждого элемента массива а[N]...
    {
        cur = a[i];         // Проверяемое число
        count = 0;          // Счётчик
        for (j = 0; j < N; j++)         // Проходим по элементам массива b[N]
            if (cur == b[j])    // Если есть совпадение
            {
                c[count] = j;   // Запоминаем индекс
                count++;    // Увеличиваем счётчик
            }
        if (count != 0)         
        {
            printf("\nТекущее число %i, найдено %i совпадений в массиве b\n", cur, count);
            for (k = 0; k < count; k++)
                printf("b[%i] = %i; ", c[k], cur);  
        }
        else 
            printf("\nЧисла %i нет в массиве b\n", cur);        
    }
        
}
Разберись и попробуй то же самое только теперь со строками.
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
07.05.2011, 16:42  [ТС]     Определить фирму, товар которой поступал чаще всего #17
ну вот, так для символов будет
но не для строки

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
#include <iostream.h>
#include <stdio.h>
#include <windows.h>
#define N 3
#define M 1
 
 
int main()
{
        char a[M], b[N], cur;
        int c[N], count, i, j, k;
 
        cout<<"masiv a: "<<endl;       
        for (i = 0; i < M; i++) {
                cin>>a[i];
        }
        cout<<"masiv b: "<<endl;     
        for (i = 0; i < N; i++) {
                cin>>b[i];
        }
 
        for (i = 0; i < M; i++)                
        {
                cur = a[i];
                count = 0;                      
                for (j = 0; j < N; j++)         
                        if (cur == b[j])       
                        {
                                c[count] = j;   
                                count++;        
                        }
                if (count != 0)
                {
                        printf("\ntekyshiy simvoJI %c, najdeno %i sovpadeniy v massive b\n", cur, count);
                        for (k = 0; k < count; k++)
                                printf("b[%i] = %c; ", c[k], cur);
                }
                else
                        printf("\nsimvoJIa %c net v massive b\n", cur);
        }
 Sleep(50000);
}
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
07.05.2011, 18:45     Определить фирму, товар которой поступал чаще всего #18
Сообщение было отмечено автором темы, экспертом или модератором как ответ
В голову что то мысли не идут, но как то так.
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
#include <stdio.h>
#include <string.h>
#include <iostream>
//#include <windows.h>
#define MAXT 30 // макс кол-во товаров
 
using namespace std;
 
struct date
{
        int dd, mm, yy;
};
struct tovar
{
        char name[30];
        char firm[30];
        double price;
        short int kol;
        char naimenovanie[50];
        char country[30];
        date day;
} t[MAXT];
 
int n;
 
int main()
 {
 
   cout<<"Vedite kol-vo tovarov, dannie o kotopix bydete voditb: "<<endl;
   cin>>n;
 
   for (int i=0; i<n; i++){
   cout<<"Dannie o "<<i<<"-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: "; // можно вводить 3 числа через пробел, "6 5 2011"
   cin>>t[i].day.dd;
        cin>>t[i].day.mm;
        cin>>t[i].day.yy;*/
   }
    
    int i, j, k, l;
    struct foo { char fi[30]; };
    foo f[n];
    for (i = 0; i < n; i++) 
        strcpy(f[i].fi, t[i].firm);
 
    for (i = 0; i < n; i++)
        printf("%s ", f[i].fi);
    printf("\n");
 
    char temp[30];
    k = n;      
    for (i = 0; i < k-1; i++)               
    {
        strcpy(temp, f[i].fi);
        j = i + 1;
        for (; j < k; j++)
        {
            
            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;
            }
        }
    }   
    for (i = 0; i < k; i++)
        printf("%s ", f[i].fi);
    printf("\n");
 
 
 
 
 //Sleep (50000);
}
Здесь создаётся отдельный массив со списком фирм(без повторений) которые есть, в той мини-программе которую ты писал, это массив а[]. а массив b[] это t[].firm, и по аналогии дописываешь код.
roman777
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 59
07.05.2011, 19:30  [ТС]     Определить фирму, товар которой поступал чаще всего #19
я вот надумал немного изменить програму, добавив функции
на данном этапе :

Warn : string.h(549,3):Functions containing for are not expanded inline
Warn : string.h(557,3):Functions containing while are not expanded inline
Warn : string.h(563,3):Functions containing for are not expanded inline
Warn : string.h(575,3):Functions containing for are not expanded inline
Warn : string.cc(686,32):Comparing signed and unsigned values
Warn : string.cc(658,22):Cannot create pre-compiled header: code in header
Warn : noname00.cpp(48,2):Function should return a value
Error: noname00.cpp(54,18):Constant expression required
Warn : noname00.cpp(103,34):Possible use of 'n' before definition


что не так?
вы уж простите, но я совсем дубовый в Си.


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
#include <iostream.h>
#include <string>
#include <stdio.h>
#define MAXT 30
using namespace std;
 
struct date
{
        int dd, mm, yy;
};
struct tovar
{
        char name[30];
        char firm[30];
        double price;
        short int kol;
        char naimenovanie[50];
        char country[30];
        date day;
} t[MAXT];
 
int main()
{
        int n;
        cout<<"\nVedite kol-vo tovarov, dannie o kotopix bydete voditb: ";
        cin>>n;
 
        tovar * a = new tovar[n];
 
        scan(a,n);
        firm_search(a,n);
 
 
 
        system("pause");
 
        return 0;
 
}
 
 
int scan(tovar t[], int n)
{
      for (int i=1; i<=n; i++) {
      cout<<endl<<"------------------Dannie o "<<i<<"-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;
      }
 
}
 
void firm_search(tovar t[], int n)
{
        int i, j, k, l;
        struct foo { char fi[30]; };
        foo f[n];
        for (i = 0; i < n; i++)
                strcpy(f[i].fi, t[i].firm);
 
        for (i = 0; i < n; i++)
                printf("%s ", f[i].fi);
        printf("\n");
 
        char temp[30];
        k = n;
        for (i = 0; i < k-1; i++)
        {
                strcpy(temp, f[i].fi);
                j = i + 1;
                for (; j < k; j++)
                {
 
                        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;
                        }
                }
        }
        for (i = 0; i < k; i++)
                printf("%s ", f[i].fi);
        printf("\n");
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2011, 19:53     Определить фирму, товар которой поступал чаще всего
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
ZloyVolkey
 Аватар для ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
07.05.2011, 19:53     Определить фирму, товар которой поступал чаще всего #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
#include <iostream>
#include <string.h>
#include <stdio.h>
#define MAXT 30
using namespace std;
 
void scan(int n);   //для функций пишутся прототипы перед мейном..
void firm_search( int n);
 
struct date
{
        int dd, mm, yy;
};
struct tovar
{
        char name[30];
        char firm[30];
        double price;
        short int kol;
        char naimenovanie[50];
        char country[30];
        date day;
}t[MAXT];       // глобальная переменная
 
int main()
{
        int n;
        cout<<"\nVedite kol-vo tovarov, dannie o kotopix bydete voditb: ";
        cin>>n;
 
       // tovar * a = new tovar[n]; //уже есть глобальный товар т
                                    // чтобы не передавать каждый раз в функцию..
        scan(n);
        firm_search(n);
 
 
 
        //system("pause");
 
        return 0;
 
}
 
 
void scan(int n)
{
      for (int i=1; i<=n; i++) {
      cout<<endl<<"------------------Dannie o "<<i<<"-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;
      }
 
};
 
void firm_search(int n)
{
        int i, j, k, l;
        struct foo { char fi[30]; };
        foo f[n];
        for (i = 0; i < n; i++)
                strcpy(f[i].fi, t[i].firm);
 
        for (i = 0; i < n; i++)
                printf("%s ", f[i].fi);
        printf("\n");
 
        char temp[30];
        k = n;
        for (i = 0; i < k-1; i++)
        {
                strcpy(temp, f[i].fi);
                j = i + 1;
                for (; j < k; j++)
                {
 
                        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;
                        }
                }
        }
        for (i = 0; i < k; i++)
                printf("%s ", f[i].fi);
        printf("\n");
 
};
Как то так...
Yandex
Объявления
07.05.2011, 19:53     Определить фирму, товар которой поступал чаще всего
Ответ Создать тему
Опции темы

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