С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
1

Добавить сортировку структуры

07.12.2011, 12:22. Показов 555. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
помогите, пжлста, я не могу в 1 код вставить код с сортировкой, чтобы все это нормально работало:
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
#include<stdio.h>
#define N 15
struct salon {
    char usluga[100],
         imja[100],
         familija[100],
         data[11];
    float summa;
} klient[N];
 
int main(void)
{     
    FILE *in; 
    int n, i, k;
    
    in = fopen("klient.txt", "r");
    if (in == NULL) {
        fprintf(stderr, "error: nevozmowno otkritj fail.txt\n");
        getchar();
        return 1;
    }
  
    n = 0;
    while(
        fscanf(in, "%s%s%s%s%f",
               klient[n].usluga,
               klient[n].imja,
               klient[n].familija,
               klient[n].data,
               &klient[n].summa) == 5 && n < N)
        n++;
 
    printf("dannie o klientah:\n");
    for (i = 0; i < n; i++)
        printf("%10s %9s %15s %15s %6.2f\n",
               klient[i].usluga,
               klient[i].imja,
               klient[i].familija,
               klient[i].data,
               klient[i].summa);
 
    /*----------vivod dannih----------*/
    printf("vvedite dannie\n");
    printf("skoljko zapisej sdelatj? ");
    
    if (scanf("%d%*c", &k) != 1) {
        fprintf(stderr, "error: incorrect input");
        return 1;
    }
        
    if (n + k > N) {
        fprintf(stderr, "error: number is too big, maximum is %d\n", N - n);
        return 1;
    }
    
    for (i = n; i < n + k; i++) {
        printf("usluga: ");
        fflush(stdout);
        scanf("%99[^\n]%*c", klient[i].usluga);
        printf("imja: ");
        fflush(stdout);
        scanf("%99[^\n]%*c", klient[i].imja);
        printf("familija: ");
        fflush(stdout);
        scanf("%99[^\n]%*c", klient[i].familija);
        printf("data: ");
        fflush(stdout);
        scanf("%10[^\n]%*c", klient[i].data);
        printf("summa: ");
        fflush(stdout);
        scanf("%f%*c", &klient[i].summa);
    }
    
    for (i = 0; i < n + k; i++)
        printf("%10s %9s %15s %15s %6.2f\n",
               klient[i].usluga,
               klient[i].imja,
               klient[i].familija,
               klient[i].data,
               klient[i].summa);
 
    fclose(in);
    getchar();
    return 0;
}
и сортировка
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
typedef struct KLIENT {
        char * imja;
        char * familija;
        char * usluga;
        char * data;
        float summa;
        
}klient_t;
FILE *in;
 
 
 
int imja_cmp(const void * a, const void *b){
        return strcmp(((klient_t*)a)->imja, ((klient_t*)b)->imja);
}
int familija_cmp(const void * a, const void *b){
        return strcmp(((klient_t*)a)->familija, ((klient_t*)b)->familija);
}
int usluga_cmp(const void * a, const void *b){
        return strcmp(((klient_t*)a)->usluga, ((klient_t*)b)->usluga);
}
int data_cmp(const void * a, const void *b){
        return strcmp(((klient_t*)a)->data, ((klient_t*)b)->data);
}
 
int summa_cmp(const void * a, const void *b){
        float f = ((klient_t*)a)->summa - ((klient_t*)b)->summa;
        return ( f < 0.0 ) ? -1 : ( f > 0.0 ) ? 1 : 0;
}
 
#define N 3
 
int main(void) {
    
    klient_t klients[N]={
      
                  
                 { .imja = "Alex", .familija = "Smirnov", .usluga = "raspe4atka",.data="12.12.12",.summa=98.22 },
                 { .imja = "Dima", .familija = "Klimov", .usluga = "kopirovanie",.data="17.10.11",.summa=76.22 },
                 { .imja = "Katja", .familija = "Umova", .usluga = "diplomka",.data="09.08.02",.summa=9.22 },
                 };
        
        int i;
        
        printf("\nUnsorted:\n");
        for ( i = 0; i < N; ++i )
                 printf("%10s %9s %15s %15s %6.2f\n",klients[i].usluga,klients[i].imja,klients[i].familija,klients[i].data,klients[i].summa);
                
        
        qsort(klients, N, sizeof(klient_t), imja_cmp);
        printf("\nSorted by imja:\n");
        for ( i = 0; i < N; ++i )
                 printf("%10s %9s %15s %15s %6.2f\n",klients[i].usluga,klients[i].imja,klients[i].familija,klients[i].data,klients[i].summa);
                
                
        qsort(klients, N, sizeof(klient_t), familija_cmp);
        printf("\nSorted by familija:\n");
        for ( i = 0; i < N; ++i )
                  printf("%10s %9s %15s %15s %6.2f\n",klients[i].usluga,klients[i].imja,klients[i].familija,klients[i].data,klients[i].summa);
                
        
        qsort(klients, N, sizeof(klient_t), usluga_cmp);
        printf("\nSorted by usluga:\n");
        for ( i = 0; i < N; ++i )
                  printf("%10s %9s %15s %15s %6.2f\n",klients[i].usluga,klients[i].imja,klients[i].familija,klients[i].data,klients[i].summa);
                     qsort(klients, N, sizeof(klient_t), data_cmp);
        printf("\nSorted by data:\n");
        for ( i = 0; i < N; ++i )
                  printf("%10s %9s %15s %15s %6.2f\n",klients[i].usluga,klients[i].imja,klients[i].familija,klients[i].data,klients[i].summa);
                  qsort(klients, N, sizeof(klient_t), summa_cmp);
        printf("\nSorted by summa:\n");
        for ( i = 0; i < N; ++i )
                  printf("%10s %9s %15s %15s %6.2f\n",klients[i].usluga,klients[i].imja,klients[i].familija,klients[i].data,klients[i].summa);
 
                system("pause");
             
                
                
        exit(0);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2011, 12:22
Ответы с готовыми решениями:

Как сделать сортировку выбором и вставками из структуры
1 курс ... курсовой... 13 дней осталось Никак не могу понять как сделать сортировку выбором и...

Как сделать сортировку структуры train по времени с помощью qsort?
Как сделать сортировку структуры train по времени с помощью qsort? #include&lt;stdio.h&gt;...

Как добавить в сортировку товара новое свойство, например сортировку по высоте, ширине, весу?
Как добавить в сортировку товара новое свойство, например сортировку по высоте, ширине, весу? Мне...

Исправить сортировку структуры
#pragma hdrstop #pragma argsused #include &lt;tchar.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt;...

6
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
07.12.2011, 13:52  [ТС] 2
получилось так, но не записывает в файл данные +сортировка не работает((

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 20
typedef struct klients {
        char  imja[10];
        char  familija[15];
        char  usluga[10];
        char  data[9];
        float summa;
        
}Klient;
FILE *in;
 
 
 
int imja_cmp(const void * a, const void *b){
        return strcmp(((Klient*)a)->imja, ((Klient*)b)->imja);
}
int familija_cmp(const void * a, const void *b){
        return strcmp(((Klient*)a)->familija, ((Klient*)b)->familija);
}
int usluga_cmp(const void * a, const void *b){
        return strcmp(((Klient*)a)->usluga, ((Klient*)b)->usluga);
}
int data_cmp(const void * a, const void *b){
        return strcmp(((Klient*)a)->data, ((Klient*)b)->data);
}
 
int summa_cmp(const void * a, const void *b){
        float f = ((Klient*)a)->summa - ((Klient*)b)->summa;
        return ( f < 0.0 ) ? -1 : ( f > 0.0 ) ? 1 : 0;
}
 
 
int main() {
    
    Klient klient[N];//struktura s N zapisjami
    int i,vibor,vibor2,n,k,inka;
    FILE* in;
    inka=1;
  while(inka!=0)
  {
    system("cls");
    printf("1 - s4itivanie s faila\n");
    printf("2 - zapisj v fail\n");
    printf("3 - sortirovka po vibronnamu polju\n");
    printf("4 - vixod\n");
    vibor=getch();
    switch(vibor){
                  case '1':  system("cls");
                             in = fopen("klient.txt", "r");
                             if (in == NULL)
                                {
                                 fprintf(stderr, "error: nevozmowno otkritj fail.txt\n");
                                 getchar();
                                 return 1;
                                }
                             n = 0;
                             while(
                                   fscanf(in, "%s%s%s%s%f",
                                                           klient[n].usluga,
                                                           klient[n].imja,
                                                           klient[n].familija,
                                                           klient[n].data,
                                                           &klient[n].summa) == 5 && n < N)//s4itivaem dannie(n - stoljko strok v faile)
                                      n++;
 
                            printf("dannie o klientah:\n");//vivodim dannie
                            for (i = 0; i < n; i++)
                               printf("%10s %9s %15s %15s %6.2f\n",
                                                                   klient[i].usluga,
                                                                   klient[i].imja,
                                                                   klient[i].familija,
                                                                   klient[i].data,
                                                                   klient[i].summa);
                              system("pause");
                              break;
                  case '2':   system("cls");  
                              printf("skoljko zapisej sdelatj? ");
    
                              if (scanf("%d", &k) != 1) 
                                {
                                   fprintf(stderr, "error: incorrect input");
                                   return 1;
                                }
        
                              if (n + k > N) {
                                    fprintf(stderr, "error: number is too big, maximum is %d\n", N - n);
                                    return 1;
                                }
    
                              for (i = n; i < n + k; i++)
                               {
                                   printf("usluga: ");
                                   scanf("%s", klient[i].usluga);
                                   printf("imja: ");
                                   scanf("%s", klient[i].imja);
                                   printf("familija: ");
                                   scanf("%s", klient[i].familija);
                                   printf("data: ");
                                   scanf("%s", klient[i].data);
                                   printf("summa: ");
                                   scanf("%f", &klient[i].summa);
                                }
    
                                for (i = 0; i < n + k; i++)
                                     printf("%10s %9s %15s %15s %6.2f\n",
                                                                         klient[i].usluga,
                                                                         klient[i].imja,
                                                                         klient[i].familija,
                                                                         klient[i].data,
                                                                         klient[i].summa);
                                     fclose(in);
                                     freopen("klient.txt","a",in);
                                     for (i=n;i<n+k;i++)
                                     fprintf(in, "%s%s%s%s%f",
                                                           klient[i].usluga,
                                                           klient[i].imja,
                                                           klient[i].familija,
                                                           klient[i].data,
                                                           &klient[i].summa);
                             system("pause");
                             break;
                  case '3':  system("cls");
                             printf("1 - po imeni\n");
                             printf("2 - po familii\n");
                             printf("3 - po usluge\n");
                             printf("4 - po date\n");
                             printf("5 - po summe\n");
                             printf("0 - vixod\n");
                             system("pause");
                                   if (vibor==1){
                                           qsort(klient, N, sizeof(klient), imja_cmp);
                                           printf("\nSorted by imja:\n");
                                           for ( i = 0; i < N; ++i )
                                             printf("%10s %9s %15s %15s %6.2f\n",klient[i].usluga,klient[i].imja,klient[i].familija,klient[i].data,klient[i].summa);
                                            system("pause");
                                             }
                                if (vibor==2){        
                                           qsort(klient, N, sizeof(klient), familija_cmp);
                                           printf("\nSorted by familija:\n");
                                           for ( i = 0; i < N; ++i )
                                           printf("%10s %9s %15s %15s %6.2f\n",klient[i].usluga,klient[i].imja,klient[i].familija,klient[i].data,klient[i].summa);
                                          system("pause");
                                           }
                               if (vibor==3){
                                           qsort(klient, N, sizeof(klient), usluga_cmp);
                                           printf("\nSorted by usluga:\n");
                                           for ( i = 0; i < N; ++i )
                                           printf("%10s %9s %15s %15s %6.2f\n",klient[i].usluga,klient[i].imja,klient[i].familija,klient[i].data,klient[i].summa);
                                          system("pause");
                                           }
                              if (vibor==4){
                                           qsort(klient, N, sizeof(klient), data_cmp);
                                           printf("\nSorted by data:\n");
                                           for ( i = 0; i < N; ++i )
                                           printf("%10s %9s %15s %15s %6.2f\n",klient[i].usluga,klient[i].imja,klient[i].familija,klient[i].data,klient[i].summa);
                                           system("pause");
                                           }
                               if (vibor==5){            
                                           qsort(klient, N, sizeof(klient), summa_cmp);
                                           printf("\nSorted by summa:\n");
                                           for ( i = 0; i < N; ++i )
                                           printf("%10s %9s %15s %15s %6.2f\n",klient[i].usluga,klient[i].imja,klient[i].familija,klient[i].data,klient[i].summa);
                                           system("pause");
                                           }
                              if (vibor==0)   break;
                              system("pause");
                  case '4': inka=0;
                       break;
    }
}//konec while
fclose(in);
  return 0;
}
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
07.12.2011, 13:57 3
letnjaja, замените

Цитата Сообщение от letnjaja;2256672qsort
(klient, N, sizeof(klient), summa_cmp);
на
C++
1
qsort(klient, N, sizeof(Klient), summa_cmp);
Добавлено через 1 минуту
И во всех остальных вызовах
Вы должны отправлять размер одного элемента массива, т.е. размер структуры или
C
1
sizeof (klient[0]);
0
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
07.12.2011, 21:20  [ТС] 4
поменяла, ничего не изменилось, такие же проблемы остались, в файл не записывает, не сортирует

Добавлено через 5 часов 59 минут
осталась проблема с сортировкой, не сортирует, помогите,пжлста, завтра сдавать О_о
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 20
typedef struct klients {
        char  imja[10];
        char  familija[15];
        char  usluga[10];
        char  data[9];
        float summa;
        
}Klient;
FILE *in;
int imja_cmp(const void * a, const void *b){
        return strcmp(((Klient*)a)->imja, ((Klient*)b)->imja);
}
int familija_cmp(const void * a, const void *b){
        return strcmp(((Klient*)a)->familija, ((Klient*)b)->familija);
}
int usluga_cmp(const void * a, const void *b){
        return strcmp(((Klient*)a)->usluga, ((Klient*)b)->usluga);
}
int data_cmp(const void * a, const void *b){
        return strcmp(((Klient*)a)->data, ((Klient*)b)->data);
}
 
int summa_cmp(const void * a, const void *b){
        float f = ((Klient*)a)->summa - ((Klient*)b)->summa;
        return ( f < 0.0 ) ? -1 : ( f > 0.0 ) ? 1 : 0;
}
int main() {
    
    Klient klient[N];//struktura s N zapisjami
    int i,vibor,vibor2,n,k,inka;
    FILE* in;
    inka=1;
  while(inka!=0)
  {
    system("cls");
    printf("1 - s4itivanie s faila\n");
    printf("2 - zapisj v fail\n");
    printf("3 - sortirovka po vibronnamu polju\n");
    printf("4 - vixod\n");
    vibor=getch();
    switch(vibor){
                  case '1':  system("cls");
                             in = fopen("klient.txt", "r");
                             if (in == NULL)
                                {
                                 fprintf(stderr, "error: nevozmowno otkritj fail.txt\n");
                                 getchar();
                                 return 1;
                                }
                             n = 0;
                             while(
                                   fscanf(in, "%s%s%s%s%f",
                                                           klient[n].usluga,
                                                           klient[n].imja,
                                                           klient[n].familija,
                                                           klient[n].data,
                                                           &klient[n].summa)==5 && n < N)//s4itivaem dannie(n - stoljko strok v faile)
                                      n++;
 
                            printf("dannie o klientah:\n");//vivodim dannie
                            for (i = 0; i < n; i++)
                               printf("%10s %9s %15s %15s %6.2f\n",
                                                                   klient[i].usluga,
                                                                   klient[i].imja,
                                                                   klient[i].familija,
                                                                   klient[i].data,
                                                                   klient[i].summa);
                              system("pause");
                              break;
                  case '2':   system("cls");  
                              printf("skoljko zapisej sdelatj? ");
    
                              if (scanf("%d", &k) != 1) 
                                {
                                   fprintf(stderr, "error: incorrect input");
                                   return 1;
                                }
        
                              if (n + k > N) {
                                    fprintf(stderr, "error: number is too big, maximum is %d\n", N - n);
                                    return 1;
                                }
    
                              for (i = n; i < n + k; i++)
                               {
                                   printf("imja: ");
                                   scanf("%s", klient[i].imja);
                                   printf("familija: ");
                                   scanf("%s", klient[i].familija);
                                   printf("usluga: ");
                                   scanf("%s", klient[i].usluga);
                                   printf("data: ");
                                   scanf("%s", klient[i].data);
                                   printf("summa: ");
                                   scanf("%f", &klient[i].summa);
                                }
    
                                for (i = 0; i < n + k; i++)
                                     printf("%10s %9s %15s %15s %6.2f\n",
                                                                         klient[i].usluga,
                                                                         klient[i].imja,
                                                                         klient[i].familija,
                                                                         klient[i].data,
                                                                         klient[i].summa);
                                     fclose(in);
                                     freopen("klient.txt","a",in);
                                     for (i=n;i<n+k;i++)
                                     fprintf(in, "%15s%15s%15s%15s%6.2f\n",
                                                           klient[i].usluga,
                                                           klient[i].imja,
                                                           klient[i].familija,
                                                           klient[i].data,
                                                           klient[i].summa);
                             fclose(in);
                             system("pause");
                             break;
                  case '3':  system("cls");
                             printf("1 - po imeni\n");
                             printf("2 - po familii\n");
                             printf("3 - po usluge\n");
                             printf("4 - po date\n");
                             printf("5 - po summe\n");
                             system("pause");
                                   if (vibor==1){
                                           qsort(klient, N, sizeof(klient[0]), imja_cmp);
                                           printf("\nSorted by imja:\n");
                                           for ( i = 0; i < N; ++i )
                                             printf("%10s %9s %15s %15s %6.2f\n",klient[i].usluga,klient[i].imja,klient[i].familija,klient[i].data,klient[i].summa);
                                            system("pause");
                                             }
                                if (vibor==2){        
                                           qsort(klient, N, sizeof(klient[0]), familija_cmp);
                                           printf("\nSorted by familija:\n");
                                           for ( i = 0; i < N; ++i )
                                           printf("%10s %9s %15s %15s %6.2f\n",klient[i].usluga,klient[i].imja,klient[i].familija,klient[i].data,klient[i].summa);
                                          system("pause");
                                           }
                               if (vibor==3){
                                           qsort(klient, N, sizeof(klient[0]), usluga_cmp);
                                           printf("\nSorted by usluga:\n");
                                           for ( i = 0; i < N; ++i )
                                           printf("%10s %9s %15s %15s %6.2f\n",klient[i].usluga,klient[i].imja,klient[i].familija,klient[i].data,klient[i].summa);
                                          system("pause");
                                           }
                              if (vibor==4){
                                           qsort(klient, N, sizeof(klient[0]), data_cmp);
                                           printf("\nSorted by data:\n");
                                           for ( i = 0; i < N; ++i )
                                           printf("%10s %9s %15s %15s %6.2f\n",klient[i].usluga,klient[i].imja,klient[i].familija,klient[i].data,klient[i].summa);
                                           system("pause");
                                           }
                               if (vibor==5){            
                                          qsort(klient, N, sizeof(klient[0]), summa_cmp);
 
                                           printf("\nSorted by summa:\n");
                                           for ( i = 0; i < N; ++i )
                                           printf("%10s %9s %15s %15s %6.2f\n",klient[i].usluga,klient[i].imja,klient[i].familija,klient[i].data,klient[i].summa);
                                           system("pause");
                                           }
                              system("pause");
                  case '4': inka=0;
                       break;
    }
}//konec while
fclose(in);
  return 0;
}
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
07.12.2011, 21:26 5
letnjaja, а почему Вы в цикле работаете с n, а в сортировку отправляете N?
0
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
08.12.2011, 02:13  [ТС] 6
из-за этого не работает сортировка?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
08.12.2011, 14:38 7
letnjaja, да. Я так понимаю n - это реальное кол-во структур. Вот его и отправляйте в сортировку.
0
08.12.2011, 14:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2011, 14:38
Помогаю со студенческими работами здесь

Как сделать сортировку структуры в TextBox
Подскажите, как сделать сортировку структуры в textBox???

добавить сортировку
у меня есть програмка домашняя библиотека помогите сделать чтобы небыло пустых строк когда я удаляю...

добавить сортировку
uses crt; Const na=10;nb=11; type mas=array of integer; var a,b,c:mas; i,e:integer; procedure...

Как реализовать быструю сортировку для структуры?
Что нужно поправить? #include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;vector&gt; #include&lt;string&gt;...


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

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