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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.90
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
#1

Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! - C++

15.11.2009, 00:42. Просмотров 2656. Ответов 44
Метки нет (Все метки)

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
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
void main(void)
{
clrscr();
char our_string[100];
char my_string[] = "exit";
int strings_count = 0;// shetchik strok
int words_count = 0;// shetchik slov
char *words;
char iskomoe_slovo[1000];
 
int iskomaya_stroka[100];
 
 
int i;
int ok;
 
cout << "Vvedite iskomoe slovo: " << endl;
cin >> iskomoe_slovo;
cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
gets(our_string);
int j=0;  
while(strcmp(our_string,my_string)!=0){// esli nasha stroka = exit, to vihodim
words = strtok(our_string," . ; ? ! , ");
strings_count++;// uvelichivaem colvo strok na 1
    while(words != NULL){
        words_count++;// colvo slov uvelichivaem na 1
 
                ok=1;
                for(i=0;i <= strlen(iskomoe_slovo)-1;i++){
                
                    if((iskomoe_slovo[i] == words[i])&&(ok==1)){
                 
                        ok = 1;
                    }
                    else{
                        ok = 0;
                    }
                }
             if(ok==1)
{
 
 
 
    iskomaya_stroka[j]=strings_count;
                        
            j++;  
}
 
    words = strtok(NULL," . ; ? ! , ");// razbivaem stroku
    }
gets(our_string);// eshe raz prosim vvesti stroku
}
 
 
cout << endl << "strings count = " << strings_count;
cout << endl << "words count = " << words_count;
cout << endl << "iskomie stroki pod nomerami: " << endl;
        for(i=0;i<j;i++)        // вывод на экран номеров
        cout<<iskomaya_stroka[i]<<" ";
 
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2009, 00:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! (C++):

С++.Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово! - C++
И exit должен выходить после ввода текста. #include&lt;iostream.h&gt; #include&lt;stdio.h&gt; #include&lt;string.h&gt; #include&lt;conio.h&gt; ...

Подскажите, что мне надо поменять в моем коде, чтобы найти сумму по столбцам? - C++
Вот моя программа, я тут нахожу сумму всех чисел, а мне надо найти сумму по столбцам, что мне изменить? #include &lt;stdio.h&gt; int...

Считать текст из файла и вывести на экран сначала вопросительные, а потом восклицательные предложения - C++
доброго времени суток) оч нужна помощь в составление программы!я с++ плохо понимаю(скорее всего вообще не понимаю)=) помогите...

Распределить элементы массива так, чтобы сначала стояли положительные, а потом отрицательные - C++
Даны целые числа n одномерного массива. Полная программа на c++.

Переписать файл так, чтобы сначала шли положительные, потом отрицательные числа - C++
Подскажите, пожалуйста, нужно ли что-то поменять или добавить в программу? Дан файл f, компоненты которого являются целыми числами....

Преобразовать массив таким образом, чтобы сначала располагались четные, а потом нечетные элементы - C++
Ребята , помогите : нужно составить алгоритм и программу преобразования массива A, таким образом , чтобы сначала распологались четные , а...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
patriot2008
72 / 72 / 4
Регистрация: 04.12.2008
Сообщений: 463
15.11.2009, 00:46 #2
C++
1
2
3
4
cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
gets(our_string);
cout << "Vvedite iskomoe slovo: " << endl;
cin >> iskomoe_slovo;
Так?
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
15.11.2009, 00:50 #3
ромыч, код прям смесь С++ и Сишного алгоритма)
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 01:44  [ТС] #4
А exit то после текста должен выходить,а не искомого слова,как это исправить?

Добавлено через 11 минут
patriot2008, а что с exit-ом делать?

Добавлено через 25 минут
patriot2008, и как увеличить размер текста,чтобы не только одна строка вводилась???ответь пож...
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 13:06  [ТС] #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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово!И exit после текста должен выходить,а не искомого слова,как это исправить?
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
void main(void)
{
clrscr();
char our_string[100];
char my_string[] = "exit";
int strings_count = 0;// shetchik strok
int words_count = 0;// shetchik slov
char *words;
char iskomoe_slovo[1000];
 
int iskomaya_stroka[100];
 
 
int i;
int ok;
 
cout << "Vvedite iskomoe slovo: " << endl;
cin >> iskomoe_slovo;
cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
gets(our_string);
int j=0;  
while(strcmp(our_string,my_string)!=0){// esli nasha stroka = exit, to vihodim
words = strtok(our_string," . ; ? ! , ");
strings_count++;// uvelichivaem colvo strok na 1
    while(words != NULL){
        words_count++;// colvo slov uvelichivaem na 1
 
                ok=1;
                for(i=0;i <= strlen(iskomoe_slovo)-1;i++){
                
                    if((iskomoe_slovo[i] == words[i])&&(ok==1)){
                 
                        ok = 1;
                    }
                    else{
                        ok = 0;
                    }
                }
             if(ok==1)
{
 
 
 
    iskomaya_stroka[j]=strings_count;
                        
            j++;  
}
 
    words = strtok(NULL," . ; ? ! , ");// razbivaem stroku
    }
gets(our_string);// eshe raz prosim vvesti stroku
}
 
 
cout << endl << "strings count = " << strings_count;
cout << endl << "words count = " << words_count;
cout << endl << "iskomie stroki pod nomerami: " << endl;
        for(i=0;i<j;i++)        // вывод на экран номеров
        cout<<iskomaya_stroka[i]<<" ";
 
getch();
}
Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово!И exit после текста должен выходить,а не искомого слова,как это исправить?

Добавлено через 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
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
void main(void)
{
clrscr();
char our_string[100];
char my_string[] = "exit";
int strings_count = 0;// shetchik strok
int words_count = 0;// shetchik slov
char *words;
char iskomoe_slovo[1000];
 
int iskomaya_stroka[100];
 
 
int i;
int ok;
 
cout << "Vvedite iskomoe slovo: " << endl;
cin >> iskomoe_slovo;
cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
gets(our_string);
int j=0;  
while(strcmp(our_string,my_string)!=0){// esli nasha stroka = exit, to vihodim
words = strtok(our_string," . ; ? ! , ");
strings_count++;// uvelichivaem colvo strok na 1
    while(words != NULL){
        words_count++;// colvo slov uvelichivaem na 1
 
                ok=1;
                for(i=0;i <= strlen(iskomoe_slovo)-1;i++){
                
                    if((iskomoe_slovo[i] == words[i])&&(ok==1)){
                 
                        ok = 1;
                    }
                    else{
                        ok = 0;
                    }
                }
             if(ok==1)
{
 
 
 
    iskomaya_stroka[j]=strings_count;
                        
            j++;  
}
 
    words = strtok(NULL," . ; ? ! , ");// razbivaem stroku
    }
gets(our_string);// eshe raz prosim vvesti stroku
}
 
 
cout << endl << "strings count = " << strings_count;
cout << endl << "words count = " << words_count;
cout << endl << "iskomie stroki pod nomerami: " << endl;
        for(i=0;i<j;i++)        // вывод на экран номеров
        cout<<iskomaya_stroka[i]<<" ";
 
getch();
}
Мне надо поменять cout-ы,чтобы сначала вводился текст,а потом искомое слово!
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 13:27 #6
может проще переделать по людски? но если следовать вашей логике то как-то так
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
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
 
void main(void)
{
    clrscr();
    char our_string[100], buf[100]="";
    char my_string[] = "exit";
    int strings_count = 0;// shetchik strok
    int words_count = 0;// shetchik slov
    char *words;
    char iskomoe_slovo[1000];
 
    int iskomaya_stroka[100];
 
 
    int i;
    int ok;
    cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
    do 
    {
        gets(our_string);
        strcat(buf,our_string);
    } while (strcmp(our_string,my_string)!=0);
 
    strcpy(our_string,buf);
    cout << "Vvedite iskomoe slovo: " << endl;
    cin >> iskomoe_slovo;
    
    int j=0;  
 
        words = strtok(our_string," . ; ? ! , ");
        strings_count++;// uvelichivaem colvo strok na 1
        while(words != NULL){
            words_count++;// colvo slov uvelichivaem na 1
 
            ok=1;
            for(i=0;i <= strlen(iskomoe_slovo)-1;i++){
 
                if((iskomoe_slovo[i] == words[i])&&(ok==1)){
 
                    ok = 1;
                }
                else{
                    ok = 0;
                }
            }
            if(ok==1)
            {
 
 
 
                iskomaya_stroka[j]=strings_count;
 
                j++;  
            }
 
            words = strtok(NULL," . ; ? ! , ");// razbivaem stroku
        }
 
 
 
    cout << endl << "strings count = " << strings_count;
    cout << endl << "words count = " << words_count;
    cout << endl << "iskomie stroki pod nomerami: " << endl;
    for(i=0;i<j;i++)                // вывод на экран номеров
        cout<<iskomaya_stroka[i]<<" ";
 
    getch();
}
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 13:44  [ТС] #7
TanT, Ну а как переделать по людски?
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 13:51 #8
тут пост номер три
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 14:13  [ТС] #9
Цитата Сообщение от TanT Посмотреть сообщение
может проще переделать по людски? но если следовать вашей логике то как-то так
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
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
 
void main(void)
{
    clrscr();
    char our_string[100], buf[100]="";
    char my_string[] = "exit";
    int strings_count = 0;// shetchik strok
    int words_count = 0;// shetchik slov
    char *words;
    char iskomoe_slovo[1000];
 
    int iskomaya_stroka[100];
 
 
    int i;
    int ok;
    cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
    do 
    {
        gets(our_string);
        strcat(buf,our_string);
    } while (strcmp(our_string,my_string)!=0);
 
    strcpy(our_string,buf);
    cout << "Vvedite iskomoe slovo: " << endl;
    cin >> iskomoe_slovo;
    
    int j=0;  
 
        words = strtok(our_string," . ; ? ! , ");
        strings_count++;// uvelichivaem colvo strok na 1
        while(words != NULL){
            words_count++;// colvo slov uvelichivaem na 1
 
            ok=1;
            for(i=0;i <= strlen(iskomoe_slovo)-1;i++){
 
                if((iskomoe_slovo[i] == words[i])&&(ok==1)){
 
                    ok = 1;
                }
                else{
                    ok = 0;
                }
            }
            if(ok==1)
            {
 
 
 
                iskomaya_stroka[j]=strings_count;
 
                j++;  
            }
 
            words = strtok(NULL," . ; ? ! , ");// razbivaem stroku
        }
 
 
 
    cout << endl << "strings count = " << strings_count;
    cout << endl << "words count = " << words_count;
    cout << endl << "iskomie stroki pod nomerami: " << endl;
    for(i=0;i<j;i++)                // вывод на экран номеров
        cout<<iskomaya_stroka[i]<<" ";
 
    getch();
}
Здесь c exit-ом нормально,но программа не выводит правильно результаты,количество строк,слов и искомую строку?

Добавлено через 1 минуту
TanT, Здесь c exit-ом нормально,но программа не выводит правильно результаты,количество строк,слов и искомую строку?
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 14:31 #10
сейчас весь текст собрался в одну строку и получается беда. чтобы этого избежать, надо тогда не склеивать строки, а доблять их в массив. то есть получиться у тебя массив строк и по нему, построчно будешь производить поиск.
но лучше, воспользоваться кодом Андрейки

Добавлено через 3 минуты
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
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
 
void main(void)
{
    //clrscr();
    char our_string[100][100], buf[100]="";
    char my_string[] = "exit";
    int strings_count = 0;// shetchik strok
    int words_count = 0;// shetchik slov
    char *words;
    char iskomoe_slovo[1000];
 
    int iskomaya_stroka[100];
    int cnt=0;
 
    int i;
    int ok;
    cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
    do 
    {
        gets(our_string[cnt++]);
    } while (strcmp(our_string[cnt-1],my_string)!=0);
 
 
    cout << "Vvedite iskomoe slovo: " << endl;
    cin >> iskomoe_slovo;
 
    int j=0;  
 for (int c=0; c<cnt; c++)
 {
     words = strtok(our_string[c]," . ; ? ! , ");
     strings_count++;// uvelichivaem colvo strok na 1
     while(words != NULL){
         words_count++;// colvo slov uvelichivaem na 1
 
         ok=1;
         for(i=0;i <= strlen(iskomoe_slovo)-1;i++){
 
             if((iskomoe_slovo[i] == words[i])&&(ok==1)){
 
                 ok = 1;
             }
             else{
                 ok = 0;
             }
         }
         if(ok==1)
         {
 
 
 
             iskomaya_stroka[j]=strings_count;
 
             j++;  
         }
 
         words = strtok(NULL," . ; ? ! , ");// razbivaem stroku
     }
 } // по всему массиву
    
 
 
 
    cout << endl << "strings count = " << strings_count;
    cout << endl << "words count = " << words_count;
    cout << endl << "iskomie stroki pod nomerami: " << endl;
    for(i=0;i<j;i++)                // вывод на экран номеров
        cout<<iskomaya_stroka[i]<<" ";
 
    getch();
}
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 14:46  [ТС] #11
TanT, А ты сможешь создать этот массив строк,чтобы построчно считывать снего,и написать мне код,попробуй пож...просто я не хотел пока свою прогу изменять...

Добавлено через 11 минут
TanT, Да прога считает,но надо сделать так чтобы он exit не считывал,в результате он выводит строки и слова включая exit,как исправить?
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 14:46 #12
ну так на топик выше и создал. а свою прогу лучше отредактируй. не аккуратненько, развивайся
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 14:51  [ТС] #13
TanT, А написать код сможешь,как создать,пож...
А если в конце,когда результаты выводятся,просто cout-ы строк и слов на 1 уменьшить?
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 15:27 #14
я всё могу, что мне надо, а если я чего-то не могу...значит оно мне не надо...

язык у тебя всё таки С или С++? STL ты использовать будешь или категорически против?

Добавлено через 18 минут
Цитата Сообщение от ромыч Посмотреть сообщение
TanT, Да прога считает,но надо сделать так чтобы он exit не считывал,в результате он выводит строки и слова включая exit,как исправить?
изменить for (int c=0; c<cnt; c++) на for (int c=0; c<cnt-1; c++)
ну
строк и слов на 1 уменьшить
ромыч
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 46
15.11.2009, 15:47  [ТС] #15
Цитата Сообщение от TanT Посмотреть сообщение
я всё могу, что мне надо, а если я чего-то не могу...значит оно мне не надо...

язык у тебя всё таки С или С++? STL ты использовать будешь или категорически против?
Язык у меня С++...Код Андрейки выводит ошибки,там через классы надо делать,менять...

Насчет редактирования,лучше отредактировать?так думаешь не пройдет?..

Добавлено через 6 минут
TanT,
Насчет редактирования,лучше отредактировать?так думаешь не пройдет?..

Добавлено через 11 минут
Цитата Сообщение от TanT Посмотреть сообщение
сейчас весь текст собрался в одну строку и получается беда. чтобы этого избежать, надо тогда не склеивать строки, а доблять их в массив. то есть получиться у тебя массив строк и по нему, построчно будешь производить поиск.
но лучше, воспользоваться кодом Андрейки

Добавлено через 3 минуты
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
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
 
 
void main(void)
{
    //clrscr();
    char our_string[100][100], buf[100]="";
    char my_string[] = "exit";
    int strings_count = 0;// shetchik strok
    int words_count = 0;// shetchik slov
    char *words;
    char iskomoe_slovo[1000];
 
    int iskomaya_stroka[100];
    int cnt=0;
 
    int i;
    int ok;
    cout << "Vvedite text, dlya vihoda naberite 'exit': " << endl;
    do 
    {
        gets(our_string[cnt++]);
    } while (strcmp(our_string[cnt-1],my_string)!=0);
 
 
    cout << "Vvedite iskomoe slovo: " << endl;
    cin >> iskomoe_slovo;
 
    int j=0;  
 for (int c=0; c<cnt-1; c++)
 {
     words = strtok(our_string[c]," . ; ? ! , ");
     strings_count++;// uvelichivaem colvo strok na 1
     while(words != NULL){
         words_count++;// colvo slov uvelichivaem na 1
 
         ok=1;
         for(i=0;i <= strlen(iskomoe_slovo)-1;i++){
 
             if((iskomoe_slovo[i] == words[i])&&(ok==1)){
 
                 ok = 1;
             }
             else{
                 ok = 0;
             }
         }
         if(ok==1)
         {
 
 
 
             iskomaya_stroka[j]=strings_count;
 
             j++;  
         }
 
         words = strtok(NULL," . ; ? ! , ");// razbivaem stroku
     }
 } // по всему массиву
    
 
 
 
    cout << endl << "strings count = " << strings_count;
    cout << endl << "words count = " << words_count;
    cout << endl << "iskomie stroki pod nomerami: " << endl;
    for(i=0;i<j;i++)                // вывод на экран номеров
        cout<<iskomaya_stroka[i]<<" ";
 
    getch();
}
Пожалуйста добавь комментарии на последнем примере,на все строки которые ты добавил,просто очень надо описать программу...

Добавлено через 46 секунд
TanT, Пожалуйста добавь комментарии на последнем примере,на все строки которые ты добавил,просто очень надо описать программу...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2009, 15:47
Привет! Вот еще темы с ответами:

Расположить элементы массива так, чтобы сначала были отрицательные и нули, а потом положительные - C++
Дан массив из 12 элементов. Расположить элементы так,чтобы сначала были отрицательные и нули,а потом положительные. Порядок расстановки не...

Преобразовать последовательность чисел так, чтобы сначала были нули, а потом все остальные. - C++
Тема лабораторной работы: Работа с одномерными массивами. Задание: Преобразовать последовательность чисел так, чтобы сначала были нули, а...

Преобразовать массив, чтобы сначала располагались элементы, модуль которых не превышает 5, а потом остальные - C++
Помогите преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 5, а потом — все...

Переписать файл целых чисел так, чтобы сначала шли положительные, а потом - отрицательные - C++
Дан файл целых чисел F. Используя вспомогательный файл H переписать компоненты файла F файл G так, чтобы сначала были записаны все...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.11.2009, 15:47
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru