- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
#include <stdio.h>
main()
{
char old[1000];
char new[1000];
int i; /*счетчик цикла длинны массива */
int z; /*счетчик нового массива */
int l; /*длинна массива */
int c; /*член массива */
l = 0;
z = 0;
printf
("программа удаления повторяющихся символов\n");
printf
("введите последовательности символов, из которых нужно удалить повторяющиеся, по окончании вводна нажмите Ctrl+D \n");
while ((c = getchar()) != EOF) {
old[l] = c;
l++;
}
old[l] = 0;
printf
("Введите символ, который нужно удадить как повторяющийся\n");
c = getchar();
for (i = 0; i < l; i++) {
if (old[i] != c) {
new[z] = old[i];
z++;
} else if (old[i] == c && old[i + 1] != c) { /*один символ из повторяющихся */
new[z] = old[i];
z++;
}
}
new[z] = 0;
printf("%s\n", new);
printf("*end");
}
absolut 19.08.2010 06:48 # −1
Altravert 19.08.2010 06:53 # 0
Altravert 19.08.2010 07:31 # 0
new -- это ключевое слово в ++, не используй в названиях.
И задание какое-то странное...
killer1804 19.08.2010 07:41 # −2
http://netlib.narod.ru/library/book0003/ch01_09.htm
про i = ему значение 0 присваивается в цикле for
Это не С++ а просто "СИ".
Altravert 19.08.2010 07:43 # +1
Как видишь, оно всё равно подсветилось. И код на C должен компилироваться в C++.
killer1804 19.08.2010 07:48 # −2
Но если даш ссылку на ресурс где эта "культура кода" описывается - я буду благодарен конечно.
Конкретно в привиденных (по ссылке что я дал) примерах нет "инициализации при объявлении", может позже будет - я пока что простые примеры разбираю.
Altravert 19.08.2010 07:52 # 0
killer1804 19.08.2010 08:01 # −2
Это было бы страшно, еслии бы I было бы счетчиком и увеличивалось посредстом i++ - если где-то раньше не написать i=0; то увеличения счетчика не произойдет.
Тут же - имеет место быть цикл for.
Это что касается присвоения.
А что касается инициализации - мне пока не ясно, если честно :) - я ж тока начал СИ изучать :)
ЗЫ: за ссылку спасибо - потом гляну на досуге.
Altravert 19.08.2010 08:10 # 0
>> если где-то раньше не написать i=0; то увеличения счетчика не произойдет
Произойдет ошибка (если компилятор не отругает). Переменная всегда равна чему-то, а если не присвоишь не сможешь даже догадаться, чему.
А вообще, не сюда наверно тебе пока.
Altravert 19.08.2010 07:54 # 0
Мне очень понравилось в свое время.
absolut 19.08.2010 09:10 # +1
Лучше определять их ближе к месту использования.
И тут же инициализировать.
А лишнее присваивание - не лучший вариант.
Скажем в Си я напишу:
, но никогда
>И код на C должен компилироваться в C++.
В общем случае - не должен.
Altravert 19.08.2010 09:54 # 0
Или в плюсах только такое появилось? Насколько я знаю, присваивание при объявлении всего лишь указывает, чем заполнять (на подобие аргумента конструктора). Не?
> Лучше определять их ближе к месту использования.
Спорный вопрос. Имхо лучше пусть код читабельный будет (типа иногда в порядки проще смотрится, когда переменные в начале, например, функции объявлены (ну в той же области видимости понятно)).
> но никогда
> int i=0;
> for( i=0
Я ебанутый чтоли?)) Конечно не надо так делать, бред же. Я про то, что я бы написал
for (int i=0;i<N;++i)
либо
int i = 0;
for(;i<N;++i)
но болтаться int i; непонятно с чем я бы не стал.
> В общем случае - не должен.
Подумал и согласился.
absolut 19.08.2010 10:14 # 0
Конечно
> for (int i=0;i<N;++i)
В классических сях так нельзя
>int i = 0;
>for(;i<N;++i)
Теряется связь с инициализатром цикла
Altravert 19.08.2010 10:40 # 0
А вот это
>> Теряется связь с инициализатром цикла
я не понял. Логически чтоли или так тоже нельзя?
absolut 19.08.2010 11:14 # 0
Логически. Писать можно как угодно, хоть for(;;)
Kornew 19.08.2010 15:21 # +2
но тогда зачем использовать цикл for
если он используется как цикл while:
Altravert 19.08.2010 07:41 # 0
Setry 19.08.2010 09:17 # 0
если учишься СИ, попробуй оптимальней переписать эту программу:
вместо второго буффера заведи переменную сдвига (int shift = 0;)
сивмол копируется на итое минус сдвиг место, при встрече символа повтора сдвиг инкрементируется
Altravert 19.08.2010 10:00 # 0
Kornew 19.08.2010 10:05 # +5
- сначала решается задача "влоб" (без какой либо оптимизации или мысли о том как оно там будет выполнятся)
- потом уже объясняется как оно выполняется, что такое память, и способы оптимизации -- задача решается чуть более оптимальным путём...
еси с самого первого урока учить всем тонкостям - у человечка забьётся стек мыслями: почему так? что это такое? как оно так?..
и сработает механизм защиты от переполнения: который будет блокировать всю поступающую информацию...
и у человека сложится впечатление: "этот язык - это просто писдец какой-то... нуивонах, лучше буду ПХП учить..."
Altravert 19.08.2010 10:42 # 0
Govnoeb 19.08.2010 13:29 # +1
есть ошибка связанная с переполнением:
когда i == ARRAY_SIZE - 1 и old[i] == c, будет обращение за пределы массива
Altravert 19.08.2010 15:35 # 0
Пашолты!!11
kubynek 19.08.2010 16:09 # −4
absolut 19.08.2010 16:15 # 0
kubynek 19.08.2010 18:08 # −8
kubynek 19.08.2010 18:10 # −8
Altravert 19.08.2010 17:14 # 0
С чего так подумал?
absolut 19.08.2010 21:48 # −1
Altravert 20.08.2010 04:19 # 0
absolut 20.08.2010 06:54 # 0
ForEveR 19.08.2010 18:08 # +3
kubynek 19.08.2010 18:13 # −8
Denis Popov 19.08.2010 19:54 # +1
Женя Кубышин на пикрелейтед обдумывает "Концепцию интерфейса редактирования профайла для сайта brainity.ru" (с) http://kubyshin.ru/
kubynek 19.08.2010 21:24 # −7
kubynek 19.08.2010 22:55 # −7
выдержка из его комента:
Вы говорите что HTML невозможно программировать. По-моему вы просто жутко наелись конфет...
Этот язык заводится из простого текстового редактора и для его исполнения нужен только веб-браузер, к вашему сведению сидя на Windows я писал в блокноте копию рабочего стола (писал например в функцию кнопки пуск т.е. ее смена на более светлую картинку и обратно, так же меню картиночное высвечивалось и прочее) Язык вполне удобный, но его не совершенство это мину
Kornew 20.08.2010 01:43 # 0
на чистом хтмл (путь даже +цсс) максимум что ты напишешь - набор страничек с картинками, текстом и выпадающими списки ссылкок...
при этом Каждая такая страничка и все её элементы -- Статичны: доступны Только для чтения (чтобы изменить что-либо, необходимо править "исходники" -- т.е. языком программирования ХТМЛ невозможно назвать)
или ВБСкрипт, ЖСкрипт, ЖаваСкрипт и сторонние объекты/аплеты к Возможностям хтмл?..
kubynek 20.08.2010 02:12 # −7
telnet 20.08.2010 09:24 # +3
Анонимус 20.08.2010 02:28 # 0
absolut 20.08.2010 06:57 # +3
kubynek 20.08.2010 09:46 # −5
Altravert 20.08.2010 09:55 # 0
http://ru.wikipedia.org/wiki/SEX
kubynek 20.08.2010 09:57 # −4
Altravert 20.08.2010 10:31 # +2
http://ru.wikipedia.org/wiki/Зоофилия
kubynek 20.08.2010 10:46 # −1
kainwinterheart 20.08.2010 11:48 # −4
absolut 20.08.2010 12:51 # −1
Altravert 20.08.2010 13:15 # 0
Altravert 20.08.2010 07:35 # 0
kubynek 19.08.2010 16:05 # −5
Altravert 19.08.2010 17:14 # +3
kubynek 19.08.2010 18:09 # −6
absolut 20.08.2010 14:06 # −4
kubynek 20.08.2010 15:50 # −4
absolut 20.08.2010 16:09 # −3
не готового к конструктивной беседе и защите своего мнения,
которому хватает сил только мышкой покликать.
kubynek 20.08.2010 16:20 # −5
Ded_Maksim 20.08.2010 16:37 # −6
Такую поебень писать..
Ну ка нах съебались учиться студентики..
Кто тут напишет тот пидорас!
Кто поставит мне минус, тот яйцетряс!