реклама на сайте
подробности

 
 
7 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Олимпиада программистов, Чистый С
Слесарь
сообщение Feb 26 2013, 17:39
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 884
Регистрация: 7-11-09
Из: Ростовская обл.
Пользователь №: 53 484



Незнаю как и кто, но я ощущаю счастье в том, что пока еще могу себе позволить не работать.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 26 2013, 17:51
Сообщение #32


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Воры в законе? disco.gif
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 26 2013, 17:58
Сообщение #33


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(ViKo @ Feb 26 2013, 20:51) *
Воры в законе? disco.gif

Вы ж поймите, что мы не виноватыя, что определенная категория населения нашей всеобъемлющей Родины живет по такому же распорядку дня sm.gif
Go to the top of the page
 
+Quote Post
Буратино
сообщение Mar 18 2013, 10:08
Сообщение #34


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



Может вот так попробовать:

Код
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>

    
void str_cpy (char **a,  const char *b) {  
   int _size = strlen(b)+1;

   *a =realloc(*a, _size);
   memmove(*a, b, _size);
}


void str_cat (char **a, const char *b){
   int _size1 = strlen(b);  

   *a =realloc(*a, _size1);
   memmove(*a + strlen(*a), b, _size1);
}

int main() {
   char *s = NULL;
  
   str_cpy(&s, "Hola Hola");    
   str_cpy(&s, s+5);    
   str_cat(&s," World");    
      
   return 0;
}


"str_cat" можно переписать как вызовс сдвигами "str_cpy".
"memmove" потому как он хитро работает и учитывает перекрытия.


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
igorle
сообщение Mar 19 2013, 14:39
Сообщение #35


Местный
***

Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753



Цитата(Буратино @ Mar 18 2013, 14:08) *
Может вот так попробовать:
...

Я обещал не комментировать и никак иначе не помогать участникам. Так что, извините. Скажу только, что направление правильное, но пока что это не годится.

Сплетнями поделться могу. Я спросил организаторов, как идут дела. Они сказали, что отказались от идеи предлагать удаленную работу программистам из России/Украины. Но от своих обязательств по олимпиаде не отказываются. И если кто сможет решить задачу, то премию получит.

Пока никто не смог.
Go to the top of the page
 
+Quote Post
skripach
сообщение Mar 19 2013, 14:52
Сообщение #36


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
Незнаю как и кто, но я ощущаю счастье в том, что пока еще могу себе позволить не работать.

А я вот напротив ощущаю счастье в том что могу позволить себе поработать.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
Буратино
сообщение Mar 19 2013, 17:27
Сообщение #37


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



Цитата(igorle @ Mar 19 2013, 18:39) *
Я обещал не комментировать и никак иначе не помогать участникам. Так что, извините. Скажу только, что направление правильное, но пока что это не годится.

Сплетнями поделться могу. Я спросил организаторов, как идут дела. Они сказали, что отказались от идеи предлагать удаленную работу программистам из России/Украины. Но от своих обязательств по олимпиаде не отказываются. И если кто сможет решить задачу, то премию получит.

Пока никто не смог.


Да фиг с ней с премией, просто интересно!:)
"realloc" не перетирает информацию, ну или точнее дублирует информацию в переразмереном буфере, а это важно и для "str_cpy" и для "str_cat". "memmove" переставляет блоки данных даже если есть перекрытие, учитывая это. Лишнего ничего нет ,но функции свои функции выполняют. Проверка на NULL еще не обдумана, но это в конце концов детали.


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Mar 20 2013, 05:17
Сообщение #38


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(igorle @ Mar 19 2013, 18:39) *
Пока никто не смог.
Ой-ли...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
igorle
сообщение Mar 20 2013, 07:09
Сообщение #39


Местный
***

Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753



Цитата(demiurg_spb @ Mar 20 2013, 08:17) *
Ой-ли...

Ничего удивительного.
Когда я говорю "никто не смог", я имею ввиду - из России/Украины никто не смог решить. В целом - они в эту игру играют уже год. Список победителей за это время есть на их сайте.

Сообщение отредактировал igorle - Mar 20 2013, 07:10
Go to the top of the page
 
+Quote Post
federal
сообщение Mar 20 2013, 07:40
Сообщение #40


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 12-01-13
Из: Нижний Новгород
Пользователь №: 75 160



На олимпиадное тут не тянет, даже далеко не тянет.

p.s. форумчанам просто *бут мозх

Сообщение отредактировал federal - Mar 20 2013, 08:46
Go to the top of the page
 
+Quote Post
am1808
сообщение Mar 20 2013, 10:08
Сообщение #41


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



отправил ради интереса

Код
void str_cpy( char** to_str, char* from_str ) {
    if ( !from_str ) {
        return;
    }

      if ( !( *to_str = ( char* )realloc( *to_str, strlen(from_str)*sizeof(char) + sizeof(char) ) ) ) {
                return;
        }

    if ( !memmove( *to_str, from_str, strlen( from_str )*sizeof(char) + sizeof(char) ) ) {
        if ( !*to_str ) {
            free( *to_str );
        }
        *to_str=NULL;
    }
}

void str_cat(char** to_str, char* from_str) {

    if ( !from_str ) {
        return;
    }

      if ( !( *to_str = ( char* )realloc( *to_str, ( !*to_str ? 0: strlen(*to_str)*sizeof(char) ) + strlen(from_str)*sizeof(char) + sizeof(char) ) ) ) {
                return;
        }

    if ( !memmove( *to_str + ( !*to_str ? 0: strlen(*to_str)*sizeof(char) ), from_str, strlen( from_str )*sizeof(char) + sizeof(char) ) ) {
        if ( !*to_str ) {
            free( *to_str );
        }
        *to_str=NULL;
    }

    
}


на что сразу же был получен ответ.
Что,собственно, и ожидаемо

Код
Thank you for taking the time to answer our challenge.

Unfortunately the answer you gave is not the answer we are looking for. I do hope that you at least enjoyed the challenge (-;

In all solutions that don't pass this stage we find at least 2 problems from the list of blocking problems that you can find at http://www.hola.org/issues.html

We realize that the bugs in your solution may have been due to a  hasty submission. Therefore, if this was your 1st submission you  are welcome re-check your code carefully, use the issues list we  gave, and try a 2nd attempt.

You can send this challenge to programmers you know and if they   will answer  the
question perfectly then you and your friend may win 2K NIS...Please remember to CC me when you forward the link to the challenge so I will know they came from you (http://www.TheCodeIL.com/5min_forward_rules.html).

Below is an email that you can use to forward to your friends.

Good Luck and again, Thank you!
Go to the top of the page
 
+Quote Post
Буратино
сообщение Mar 20 2013, 10:09
Сообщение #42


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



Да, мне кое какие моменты нужно исправить..

Скажите, а нафига "sizeof(char)" делать? Один ведь будет во всех системах, или нет?


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
am1808
сообщение Mar 20 2013, 10:13
Сообщение #43


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 29-05-11
Из: Nizhny Novgorod, Russian Federation
Пользователь №: 65 337



размер типа правильно определять в runtime
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Mar 20 2013, 10:17
Сообщение #44


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(am1808 @ Mar 20 2013, 14:13) *
размер типа правильно определять в runtime
compiletime всё же cool.gif


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Буратино
сообщение Mar 20 2013, 10:23
Сообщение #45


Профессионал
*****

Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215



Цитата(am1808 @ Mar 20 2013, 14:13) *
размер типа правильно определять в runtime


Но ведь char всегда 8 бит, зачем так делать? Я понимаю "int", там могут быть вопросы, но с "char" мне кажется лишним "сайзофать".

Видимо в целом направление не верное в решении этой задачи. Поправлю свой вариант и попробуем иным путем пойтиsm.gif


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post

7 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01484 секунд с 7
ELECTRONIX ©2004-2016