Ваш код, ув.ull9, при входящей последовательности "0100110" выдаёт ответ 3, а правильный ответ всёже 1 . (Единицу на втором месте меняем с последним нулём).
Code: #include <stdio.h> int main() { char c; int ke=0,kn=0,kx=0; FILE *in; in = fopen("task.in","r"); while ((c = fgetc(in)) != EOF) { if ((c == 48) || (c == 49)) { ke = (c==49)? (ke+1):ke; kn = ((c==48)&&ke)? (kn+1):kn; kx = (c==49)? (kx+1):0; } } fclose(in); ke -= kx; printf("Answer is %i\n", (kn>ke)? ke:kn); return 0; }
Не понял нужность этой строки."Если пришла 1, то добавили один, если пришёл 0, то и переменную кх затёрли" 0100110 мы здесь последним нулём затираем кх, соответственно ничего не меняеться. Ответ кода как был 3, так и остался. Какаято другая логика быть должна для решения этой задачки в принципе. Простым подсчётом нулей и единиц здесь не обойтись, т.к. есть вот такие особые случаи.
Мир Вам! :o:o Мне стыдно... Богоравный ull9, не сердитесь, но напомню Вам условие задания: а не на С++ Идея - светлая, вообще-то. Сейчас буду разбираться...благодарствую!!
я так немного поразмышлял.. не обойтись без буффера где будешь накапливать нолики/единицы.. а он неопределенной длинны. т.е. вектор. задачка нетривиальная
Были мысли об двойном считывании...но это - не мои мысли. Код уже есть реализованный, но, опять-таки однокурсниками...не по понятиям у них выпрашивать...надобно бы хоть как-то самому попробовать...
Мир Вам! Фу-у-у-ух...есть таки, сАбака...победил! (Да, согдасен с Вами, многомудрый ull9, Вы писАли на Си...просто, у нас несколько иной синтаксис...такое ведь может быть? А я же только начинающий...не разбираюсь ещё толком...)
Сейчас у нас началось ООП...Аятолла находится в...э...состоянии перманентного ступора...пока ничего толком не понимаю...но это - из-за обилия новой терминологии. Да ещё к тому же и нужно реализовывать задачи на разных языках программирования... Синтаксис вааще новый... Но такая ситуация продлится не долго...скоро выбор языков - и тогда уже более конкретно все будет...
и зачем аятолле это надо? кодеры берут до 5 рублей (русских) за строчку. правда одно но.... все кодеры - ленивые, как и фотографы, впрочем.... но плагины и прочую пошлость пишут быстро и исправляют после тестирования сразу.
Мир Вам! Веточка-то не большая, внимательнейший Свідок...я выкладывал объявления об приеме на работу...немножко не сочетается с Вашими "5 рублей"(я ж не про "индусский код" говорил.... Да я и не "агитирую за Советскую власть"...это МНЕ интересно и, смею надеятся, понадобится. Добрые люди, вот, помогают...спасибо им!
а кто из многомудрых мне расскажет в чем разница (преимущества и недостатки) между базами данных постгри и мускулом?
Мир Вам! Это какой-то хитроумный тест?:o Аятолла же - новичек в энтих вопросах...хотя, может кто из многомудрых форумчан знает...:o
Мир Вам! Вновь ленивый Аятолла просит всезнающих форумчан о помощи...:o:o Суть такова: есть задача, решение которой реализовано мной на Си...а нужно - на РНР(для начала...потом на Java и Python, но эт я уже сам попробую): Условие задачи С помощью известных вам инструментов реализовать тип Vector (вектор на координатной плоскости) с координатами x, y типа double. Также реализовать следующие функции: Vector vectorSum(Vector a, Vector b) Vector vectorDiff(Vector a, Vector b) void vectorIncrement(Vector *this, Vector other) void vectorDecrement(Vector *this, Vector other) int vectorEqual(Vector a, Vector b) - cравнение векторов по координатам double vectorLen(Vector this) – нахождение длины вектора. Воспользоваться функцией hypot() из библиотеки math.h void vectorPrint(Vector this) - печать вектора в виде (x, y). Воспользоваться шаблоном %g Код: #include <math.h> #include <stdio.h> typedef struct { double x; double y; } Vector; Vector vectorSum(Vector a, Vector b) { Vector sum; sum.x = a.x + b.x; sum.y = a.y + b.y; return sum; } Vector vectorDiff(Vector a, Vector b) { Vector diff; diff.x = a.x - b.x; diff.y = a.y - b.y; return diff; } void vectorIncrement(Vector *this, Vector other) { this->x += other.x; this->y += other.y; } void vectorDecrement(Vector *this, Vector other) { this->x -= other.x; this->y -= other.y; } int vectorEqual(Vector a, Vector b) { if ( a.x == b.x && a.y == b.y ) { return 1; } return 0; } double vectorLen(Vector this) { double len; len = hypot(this.x, this.y); return len; } void vectorPrint(Vector this) { printf("(%g, %g)", this.x, this.y); } :o Не постиг я ещё синтаксис РНР...