С новичёк

Модератор: Модераторы разделов

vintovkin
Сообщения: 109
ОС: FreeBSD 6.2

С новичёк

Сообщение vintovkin »

ВСЕМ ПРИВЕТ!!!
Не собирается прога на С# ОС freebsd 6.2

Код: Выделить всё

 .-(~/c/c2)-----------------------------------------------------(1@vintovkin)-
`--> gcc 3.c
3.c: In function `main':
3.c:13: error: stray '\' in program
3.c:13: error: syntax error before '!' token
3.c:13: error: stray '\' in program
3.c:13: error: stray '\' in program
3.c:13: error: stray '\' in program
3.c: At top level:
3.c:20: error: syntax error before string constant
3.c:20: error: syntax error before ')' token
.-(~/c/c2)-----------------------------------------------------(1@vintovkin)-
`-->


вот исходник:

Код: Выделить всё

.-(~/c/c2)-----------------------------------------------------(1@vintovkin)-
`--> cat 3.c
#define eof 0
#define yes 1
#define no  0
main()
{
        int c, nl, nw, nc, inword;
        inword = no;
        nl = nw = nc = 0;
        while((c = getchar()) != eof) {
                ++nc;
                if (c == '\n')
                        ++nl;
                if (c==' ' \!\! c=='\n' \!\! c=='\t')
                        inwodr = no;
                else if (inword == no)  {
                        inword = yes;
                        ++nw;
                }
        }
        printf("%d %d %d\n", nl, nw, nc);
}
.-(~/c/c2)-----------------------------------------------------(1@vintovkin)-
`-->


материал брал тут:
http://lib.ru/CTOTOR/kernigan.txt
CSKA MOSCOW
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: С новичёк

Сообщение Zeus »

Нифига себе: Керниган про C# писал?

vintovkin писал(а):
21.07.2007 23:11
ВСЕМ ПРИВЕТ!!!
Не собирается прога на С# ОС freebsd 6.2

Код: Выделить всё

                if (c==' ' \!\! c=='\n' \!\! c=='\t')


Лучше будет, если написать:

Код: Выделить всё

                if (c==' ' || c=='\n' || c=='\t')
Спасибо сказали:
VoofT
Сообщения: 119
ОС: Gentoo Linux 2007.0 [i686]

Re: С новичёк

Сообщение VoofT »

Zeus писал(а):
21.07.2007 23:28
Нифига себе: Керниган про C# писал?

В книге той именно написано, что это книга по С, а не С#. Для незнающих, это разные языки ;). Далекоооо разные.
Спасибо сказали:
Аватара пользователя
Ivanhoe
Сообщения: 136

Re: С новичёк

Сообщение Ivanhoe »

Тока увидел дефайны, так сраааазу заподозрил - что-то не то :-D :-D
Все погибнут при гравитационном коллапсе, Маша...
---
Затрать 5 минут в неделю. Сделай OpenOffice.org лучше http://community.i-rs.ru/index.php/topic,3241.0.html
Спасибо сказали:
vintovkin
Сообщения: 109
ОС: FreeBSD 6.2

Re: С новичёк

Сообщение vintovkin »

спасибо!помогло=))

а чё Вы стебаетесь :blush: ,чё я не так написал :blush: ?хто такой дефайн?? :cool:
CSKA MOSCOW
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Контактная информация:

Re: С новичёк

Сообщение diesel »

vintovkin писал(а):
22.07.2007 01:12
а чё Вы стебаетесь :blush: ,чё я не так написал :blush: ?хто такой дефайн?? :cool:

C# это другой язык(там совсем по другому собирается), ты же на С написал.
Спасибо сказали:
vintovkin
Сообщения: 109
ОС: FreeBSD 6.2

Re: С новичёк

Сообщение vintovkin »

Aaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!
sorry=)))))))))))))))))
CSKA MOSCOW
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: С новичёк

Сообщение Zeus »

VoofT писал(а):
21.07.2007 23:46
Zeus писал(а):
21.07.2007 23:28
Нифига себе: Керниган про C# писал?

В книге той именно написано, что это книга по С, а не С#. Для незнающих, это разные языки ;). Далекоооо разные.

От спасибо-то - запишу в блокнотик!
:laugh:
Спасибо сказали:
vintovkin
Сообщения: 109
ОС: FreeBSD 6.2

Re: С новичёк

Сообщение vintovkin »

Всем Привет!!!
ОС freebsd
не собирается прога:

Код: Выделить всё

-(~1/c/c2)-------------------------------------------------(root@vintovkin)-
`--# gcc 7.c
7.c: In function `copy':
7.c:40: error: invalid lvalue in increment
7.c:40: error: syntax error before "i"
.-(~1/c/c2)-------------------------------------------------(root@vintovkin)-
`--#


исходник


Код: Выделить всё

.-(~1/c/c2)-------------------------------------------------(root@vintovkin)-
`--# cat 7.c
#define eof -1
#define maxline 1000 /*максимальное число линий*/
main()
{
int len;
int max;
char line[maxline];
char save[maxline];
max = 0;
while ((len = getline(line, maxline)) > 0)
if (len > max)
{
max = len;
copy(line, save);
}
if (max > 0)
printf("%s", save);
}
getline(s,lim)
char s[];
int lim;
{
int c, i;
for(i=0;i<lim-1 && (c=getchar())!=eof && c!='\n';++i)
s[i] = c;
if (c =='\n')
{
s[i] = c;
++i;
}
s[i] = '\';
return(i);
}
copy(s1, s2)
char s1[], s2[];
{
int i;
i = 0;
while ((s2[i] = s1[i] != '\')
   ++i;
}
.-(~1/c/c2)-------------------------------------------------(root@vintovkin)-
`--#


какие идеи?
:blush:
CSKA MOSCOW
Спасибо сказали:
Аватара пользователя
slasher
Сообщения: 92
ОС: Arch

Re: С новичёк

Сообщение slasher »

while ((s2[i] = s1[i] != '\')
не хватает закрывающей скобки
Today would be a good day to DIE.
Спасибо сказали:
vintovkin
Сообщения: 109
ОС: FreeBSD 6.2

Re: С новичёк

Сообщение vintovkin »

Код: Выделить всё

while ((s2[i] = s1[i]) != '\')


senks:)

Код: Выделить всё

.-(/home/1/c/c2)-------------------------------------------(root@vintovkin)-
`--# gcc 7.c -o 7
.-(/home/1/c/c2)-------------------------------------------(root@vintovkin)-
`--#
CSKA MOSCOW
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: С новичёк

Сообщение Liksys »

Рекомендую вчитываться в дальнейшем в сообщения компилятора.
Спасибо сказали:
vintovkin
Сообщения: 109
ОС: FreeBSD 6.2

Re: С новичёк

Сообщение vintovkin »

где косяк??

Код: Выделить всё

.-(~/c/c2/c3)-----------------------------------------------------(1@vintovkin)-
`--> vi 1.c
#define eof -1
#define maxline 1000

char line[maxline];
char save[maxline];
int  max;
main()
{
int len;
extern int max;
#define eof -1
#define maxline 1000

char line[maxline];
char save[maxline];
int  max;
main()
{
int len;
extern int max;
extern char save[];
max = 0;

while ( (len = getline() ) > 0 )
   if ( len > max ) {
           max = len;
           copy();
}
if ( max > 0 )
   printf( "%s", save );
}

getline()
{
   int c, i;
   extern char line[];

for (i = 0; i < maxline-1

    && c=getchar()) !=eof && c!='\n';
         line[i] = c;
         ++i;
}
line[i] = '\';
return(i);
}
copy()
{
    int i;
    extern char line[], save[];

    i = 0;
    while ((save[i] = line[i]) !='\')
            ++i;
}


Код: Выделить всё

.-(~/c/c2/c3)-----------------------------------------------------(1@vintovkin)-
`--> gcc 1.c
1.c: In function `getline':
1.c:30: error: invalid lvalue in assignment
1.c:30: error: syntax error before ')' token
1.c: At top level:
1.c:34: error: `i' undeclared here (not in a function)
1.c:34: warning: data definition has no type or storage class
1.c:35: error: syntax error before "return"
1.c:34: error: storage size of `line' isn't known
.-(~/c/c2/c3)-----------------------------------------------------(1@vintovkin)-
`-->
CSKA MOSCOW
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: С новичёк

Сообщение Uncle_Theodore »

Бррр... Это ты скопировал с ошибкой, или у тебя два main()'а в программе?

Вот это

Код: Выделить всё

for (i = 0; i < maxline-1

    && c=getchar()) !=eof && c!='\n';
         line[i] = c;
         ++i;


выглядит ну очень странно. У for() есть три поля, разделенных точкой с запятой. У тебя что-то непонятное...
Спасибо сказали:
vintovkin
Сообщения: 109
ОС: FreeBSD 6.2

Re: С новичёк

Сообщение vintovkin »

2 Uncle_Theodore

да,скопировал отсюда:
http://lib.ru/CTOTOR/kernigan.txt

а вот исходник из этой книги:
Внешняя переменная должна быть определена вне всех функ-
ций; при этом ей выделяется фактическое место в памяти. Та-
кая переменная должна быть также описана в каждой функции,
которая собирается ее использовать; это можно сделать либо
явным описанием EXTERN, либо неявным по контексту. Чтобы
сделать обсуждение более конкретным, давайте перепишем прог-
рамму поиска самой длинной строки, сделав LINE, SAVE и MAX
внешними переменными. Это потребует изменения описаний и тел
всех трех функций, а также обращений к ним.

#DEFINE MAXLINE 1000 /* MAX. INPUT LINE SIZE*/

CHAR LINE[MAXLINE]; /* INPUT LINE */
CHAR SAVE[MAXLINE];/* LONGEST LINE SAVED HERE*/
INT MAX;/*LENGTH OF LONGEST LINE SEEN SO FAR*/
MAIN() /*FIND LONGEST LINE; SPECIALIZED VERSION*/
{
INT LEN;
EXTERN INT MAX;
EXTERN CHAR SAVE[];
MAX = 0;

WHILE ( (LEN = GETLINE()) > 0 )
IF ( LEN > MAX ) {
MAX = LEN;
COPY();
}
IF ( MAX > 0 ) /* THERE WAS A LINE */
PRINTF( "%S", SAVE );
}

GETLINE() /* SPECIALIZED VERSION */
{
INT C, I;
EXTERN CHAR LINE[];

FOR (I = 0; I < MAXLINE-1


&& (C=GETCHAR()) !=EOF && C!='\N'; ++I)
LINE[I] = C;
++I;
}
LINE[I] = '\'
RETURN(I)
}
COPY() /* SPECIALIZED VERSION */
{
INT I;
EXTERN CHAR LINE[], SAVE[];

I = 0;
WHILE ((SAVE[I] = LINE[I]) !='\')
++I;
}

Внешние переменные для функций MAIN, GETLINE и COPY оп-
ределены в первых строчках приведенного выше примера, кото-
рыми указывается их тип и вызывается отведение для них памя-
ти. синтаксически внешние описания точно такие же, как опи-
сания, которые мы использовали ранее, но так как они распо-
ложены вне функций, соответствующие переменные являются
внешними. Чтобы функция могла использовать внешнюю переме-
ную, ей надо сообщить ее имя. Один способ сделать это -
включить в функцию описание EXTERN; это описание отличается
от предыдущих только добавлением ключевого слова EXTERN.


p.s.
афтар книги спецом в исходники ошибки засунул,чтоб новичёк в исходнике покопался,поискал ошибку ...
мне ещё сложно самому искать это ...
CSKA MOSCOW
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.
Контактная информация:

Re: С новичёк

Сообщение eduard_pustobaev »

vintovkin писал(а):
03.08.2007 23:57
афтар книги спецом в исходники ошибки засунул,чтоб новичёк в исходнике покопался,поискал ошибку ...

Да-да, вот такой вот негодяй - создатель языка C. Более того он даже язык этот специально придумал, чтоб новички об него моск ламали. А иначе почему он такой сложный, а компилятор непонятно разговаривает? Ото ж! А Страуструп вообще садист, кстати...
В дисгармонии со вселенной.
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian
Контактная информация:

Re: С новичёк

Сообщение diesel »

vintovkin писал(а):
03.08.2007 23:57
афтар книги спецом в исходники ошибки засунул,чтоб новичёк в исходнике покопался,поискал ошибку ...
мне ещё сложно самому искать это ...

попробуй найти более нормальный текст этой же книги.
хотя читая сообщения компилятора(там строчка пишется на которой ошибка) найти неправильно написанный фор(в книге ведь до этого про этот цикл было, да) вполне по силам тебе должно быть.
Спасибо сказали:
vintovkin
Сообщения: 109
ОС: FreeBSD 6.2

Re: С новичёк

Сообщение vintovkin »

курил маны - просветления не настало,нацарапайте плиз,как эту траблу победить .(
CSKA MOSCOW
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: С новичёк

Сообщение Uncle_Theodore »

vintovkin писал(а):
12.08.2007 20:18
курил маны - просветления не настало,нацарапайте плиз,как эту траблу победить .(

Какую траблу-то?
С циклом for()?
Так у тебя даже скопировано неправильно было.
Спасибо сказали:
vintovkin
Сообщения: 109
ОС: FreeBSD 6.2

Re: С новичёк

Сообщение vintovkin »

щас тупо скопировал с книги и вставил в файло ,откопилил,и вот такая лажа :wacko:

Код: Выделить всё

.-(~/c/c2/c3)--------------------------------------------------(1@vintovkin)-
`--> gcc 2.c
2.c:1:2: invalid preprocessing directive #DEFINE
2.c:2:2: invalid preprocessing directive #DEFINE
2.c:4: error: syntax error before "LINE"
2.c:4: error: `MAXLINE' undeclared here (not in a function)
2.c:4: warning: data definition has no type or storage class
2.c:5: error: syntax error before "SAVE"
2.c:5: warning: data definition has no type or storage class
2.c:6: error: syntax error before "MAX"
2.c:6: warning: data definition has no type or storage class
2.c: In function `MAIN':
2.c:9: error: syntax error before "LEN"
2.c:14: error: `LEN' undeclared (first use in this function)
2.c:14: error: (Each undeclared identifier is reported only once
2.c:14: error: for each function it appears in.)
2.c:15: error: syntax error before "IF"
2.c: At top level:
2.c:19: error: syntax error before '>' token
2.c:4: error: storage size of `LINE' isn't known
2.c:5: error: storage size of `SAVE' isn't known
.-(~/c/c2-(~/c/c2/c3)--------------------------------------------------(1@vintovkin)-
`-->
CSKA MOSCOW
Спасибо сказали:
vintovkin
Сообщения: 109
ОС: FreeBSD 6.2

Re: С новичёк

Сообщение vintovkin »

исходник,как в книге,один в один ... :angry:

Код: Выделить всё

#DEFINE EOF 0
#DEFINE MAXLINE 1000 /* MAX. INPUT LINE SIZE*/

CHAR LINE[MAXLINE]; /* INPUT LINE */
CHAR SAVE[MAXLINE];/* LONGEST LINE SAVED HERE*/
INT MAX;/*LENGTH OF LONGEST LINE SEEN SO FAR*/
MAIN() /*FIND LONGEST LINE; SPECIALIZED VERSION*/
{
 INT LEN;
 EXTERN INT MAX;
 EXTERN CHAR SAVE[];
 MAX = 0;

WHILE ( (LEN = GETLINE()) > 0 )
 IF ( LEN > MAX ) {
 MAX = LEN;
 COPY();
 }
IF ( MAX > 0 ) /* THERE WAS A LINE */
 PRINTF( "%S", SAVE );
}

GETLINE() /* SPECIALIZED VERSION */
{
 INT C, I;
 EXTERN CHAR LINE[];

 FOR (I = 0; I < MAXLINE-1


 && (C=GETCHAR()) !=EOF && C!='\N'; ++I)
 LINE[I] = C;
 ++I;
 }
 LINE[I] = '\'
 RETURN(I)
 }
 COPY() /* SPECIALIZED VERSION */
 {
 INT I;
 EXTERN CHAR LINE[], SAVE[];

 I = 0;
 WHILE ((SAVE[I] = LINE[I]) !='\')
 ++I;
 }
CSKA MOSCOW
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: С новичёк

Сообщение Uncle_Theodore »

Я не думаю, что этот текст вообще был предназначен для компиляции. Похоже, это просто иллюстрация чего-то, использования переменных, что ли...
Линукс различает большие и маленькие буквы, в примере это все злостно проигнорировано. Кроме того, есть и другие приколы.

Если хочешь, чтобы это все компилировалось, я тут пробежался по коду, вот это компилируется

Код: Выделить всё

#define MAXLINE 1000 /* MAX. INPUT LINE SIZE*/
#include <stdio.h>

char LINE[MAXLINE]; /* INPUT LINE */
char SAVE[MAXLINE];/* LONGEST LINE SAVED HERE*/
int MAX;/*LENGTH OF LONGEST LINE SEEN SO FAR*/
main() /*FIND LONGEST LINE; SPECIALIZED VERSION*/
{
  int LEN;
  extern int MAX;
  extern char SAVE[];
  MAX = 0;

  while ( (LEN = getline()) > 0 )
    if ( LEN > MAX ) {
      MAX = LEN;
      copy();
    }
  if ( MAX > 0 ) /* THERE WAS A LINE */
    printf( "%S", SAVE );
}

getline() /* SPECIALIZED VERSION */
{
  int C, I;
  extern char LINE[];

  for (I = 0; I < MAXLINE-1


     && (C=getchar()) != EOF && C!='\n'; ++I)
    LINE[I] = C;
  ++I;

  LINE[I] = '\\';
  return(I);
    }
copy() /* SPECIALIZED VERSION */
{
  int I;
  extern char LINE[], SAVE[];

  I = 0;
  while ((SAVE[I] = LINE[I]) !='\\')
    ++I;
}

Но я не думаю, что оно делает что-то осмысленное...
Спасибо сказали:
vintovkin
Сообщения: 109
ОС: FreeBSD 6.2

Re: С новичёк

Сообщение vintovkin »

Спасибо Большое=)
CSKA MOSCOW
Спасибо сказали:
sbar
Сообщения: 354
ОС: Gentoo

Re: С новичёк

Сообщение sbar »

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

Код: Выделить всё

>>> x = """test tezzztt dklashd3hjk
... aishdkjasdhf"""
>>> from re import search
>>> y = search(r'[a-z]*\s([a-z]*)\s.*\n([a-z]*)$', x)
>>> print y.group(1) + ' ' + y.group(2)
tezzztt aishdkjasdhf
>>>
а как такое делается в Си?
обчитался всяких манов но так и не понял ничего %) нахожу всякие compile'ы, step'ы и прочие непонятные мне вещи с кучей непонятных аргументов
есть ли в Си функция, похожая на "search"?
/* сорри, если вопрос воистину идиотский */
Спасибо сказали:
v04bvs
Сообщения: 636
ОС: Debian GNU/Linux

Re: С новичёк

Сообщение v04bvs »

Pr0b3L писал(а):
13.08.2007 17:30
можно мне тут вопрос задать (или мне целую тему создать надо было)?
как работать с регулярными выражениями в Си?
допустим есть строка, из которой нужно вытащить несколько значений. в python бы это выглядело как-то так:

Код: Выделить всё

>>> x = """test tezzztt dklashd3hjk
... aishdkjasdhf"""
>>> from re import search
>>> y = search(r'[a-z]*\s([a-z]*)\s.*\n([a-z]*)$', x)
>>> print y.group(1) + ' ' + y.group(2)
tezzztt aishdkjasdhf
>>>
а как такое делается в Си?
обчитался всяких манов но так и не понял ничего %) нахожу всякие compile'ы, step'ы и прочие непонятные мне вещи с кучей непонятных аргументов
есть ли в Си функция, похожая на "search"?
/* сорри, если вопрос воистину идиотский */

в С такого нет. Зато есть внешние библиотеки, реализующие работу с регулярными выражениями. Таких библиотек достаточно много - надо смотреть их документацию, examples и т.д.
Спасибо сказали:
sbar
Сообщения: 354
ОС: Gentoo

Re: С новичёк

Сообщение sbar »

v04bvs писал(а):
13.08.2007 17:51
в С такого нет. Зато есть внешние библиотеки, реализующие работу с регулярными выражениями. Таких библиотек достаточно много - надо смотреть их документацию, examples и т.д.
можно хотя бы некоторые названия библиотек (я только находил всякие regex*.h, в которых ничего не понятно), плиз?
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: С новичёк

Сообщение Uncle_Theodore »

Ну, про regexp.h пример вот тут http://linuxgazette.net/issue55/misc/tindale/mygrep.c.txt посмотреть можно.
Спасибо сказали:
sbar
Сообщения: 354
ОС: Gentoo

Re: С новичёк

Сообщение sbar »

Uncle_Theodore писал(а):
13.08.2007 19:44
Ну, про regexp.h пример вот тут http://linuxgazette.net/issue55/misc/tindale/mygrep.c.txt посмотреть можно.
вот такие примерчики я и нахожу :(
не уж то для такой простой задачи мне придется писать код, строчек на 50-100?
если это так и есть то скорее всего я напишу свою библиотеку, для работы с регулярками...
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: С новичёк

Сообщение sergio »

Pr0b3L писал(а):
13.08.2007 19:54
Uncle_Theodore писал(а):
13.08.2007 19:44
Ну, про regexp.h пример вот тут http://linuxgazette.net/issue55/misc/tindale/mygrep.c.txt посмотреть можно.
вот такие примерчики я и нахожу :(
не уж то для такой простой задачи мне придется писать код, строчек на 50-100?
если это так и есть то скорее всего я напишу свою библиотеку, для работы с регулярками...

Пример с виду дурной - там размещение памяти, чтение из файла, и ошибки от этого всего - все в кучу. Реального кода до регэкспа там строк 20.
В целом - программы на Си всегда будут длиннее, чем скрипты безтиповых языков, с GC, со встроенными строками, списками и хэшами, вроде перл, питон да руби. Как бы ничего нового я не сказал, и вы тоже ничего не открыли. =)
Что до своей либы - желаю успехов всяческих. Если задача чуть сложнее, чем strstr или strncmp, и она одна - почему бы не написать?
А для общего применения - напишете конечно, но боюсь строк в 5000 может уложитесь... а может и нет. =)
Возможно, есть библиотечки уровнем повыше, С++, если устроит, конешна...
А си - вряд ли сильно проще бывает. =)
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
pavel-raziel
Сообщения: 98
ОС: OpenSuSe 11.0

Re: С новичёк

Сообщение pavel-raziel »

vintovkin, не копируй попросту исходник, сначала прочитай че пишется, очень часто натыкался на такие примеры, сам потом голову ломал: "почему этот код не пашет", тогда решил сначала читать, а потом с исправленными ошибками набирать код.
ИМХО возможно, когда пишут примет впопыхах делают ляпы, прогу не компилят, а сразу же выкладывают пример.
Computers are like air conditioners, they stop working properly if you open Windows.
Спасибо сказали:
Ответить