Анончик, вновь прошу помощи с лабой по погроммированию. Суть такова: вводим приставку(несколько букв), далее вводим 10 слов, выводим слова с этой приставкой из числа введенных. Программа компилируется, запускается, выводит первое слово с приставкой и кучу каких-то странных символов. Где косяк?Код: #include <stdio.h> #include <conio.h> #include <string.h> main ( ) { char gresult[10][40], temp[40], pref[40]; int t=0, i,j,k; printf("vvedite prefix: \n"); gets(pref); k=strlen(pref); printf("vvedite 10 slov: \n"); for (i=0; i<10; i++) { gets(temp); for (j=0; j<k; j++ ) { if (temp[j]=pref[j]) t++; } if (k==t) strcpy(gresult, temp); j=0; } i=0; puts("slova s prefixom: \n"); for (i=0; i< 10; i++) puts (gresult); getch(); return 0; }
test
быстробамп
>>130268465 (OP)
еще бампец.
Котобамп.
да неужто все спят?
if (temp[j]=pref[j])== же
скрин кривого вывода в тред
>>130268826кресты на такую хуйню не ругаются? топ кек
>strcpy(gresult, temp);Что ж ты делаешь то содомит?
>>130268826Поправил, спасибо. Однако все равно выводит пиздец. >>130268838пикрил
почему ты тебе не воспользоваться ideone.com и скинуть ссыль с нормальным форматированием твоего кода, то что мы имеем сейчас не читаемое говно мой маленький не спящий друг
>>130268960кодировка девять на двенадцать
>>130268898А что не так?
>>130269029какой тип имеет переменная gresult?
>>130269059char же.
>>130269104а если хорошо подумаем?
>>130269126if?
>>130269126все правильно же, там массив из символов - строка
>>130268963 #include <stdio.h> #include <conio.h> #include <string.h> main ( ) { char gresult[10][40], temp[40], pref[40]; int t=0, i,j,k; printf("vvedite prefix: \n"); gets(pref); k=strlen(pref); printf("vvedite 10 slov: \n"); for (i=0; i<10; i++) { gets(temp); for (j=0; j<k; j++ ) { if (temp[j]==pref[j]) t++; } if (k==t) strcpy(gresult, temp); j=0; } i=0; puts("slova s prefixom: \n"); for (i=0; i< 10; i++) puts (gresult); getch(); return 0; }
>for (i=0; i< 10; i++) puts (gresult);Какой же ты содомит то а, но на месте твоего препа не мучал бы тебя поставил бы 4 и отпустил бы чтобы ты дальше пинал хуй в универе думая что все тебе легко дается
>>130269186Сука содомит
>>130269126char.
>>130269164так хорошо, а какой тип имеет переменная gresult[10]?
>>130269186Вот тут-то я и проиграл.
>>130269231Тоже char же.Тут иначе никак.
>>130269188gresult там, при копировании проебалось. Так может все-таки кто-то подскажет ошибку? Ну или хоть намекните.
>>130269231char[40]?неоп
>>130269258так интересно, тоже char, а может gresult - массив указателей на char - (char) а gresult[10] - указатель на char - (*char), что про такую штуку мыслишь?
>>130269297Опять проебался. gresult(i), только i в квадратных скобках.
>>130268465 (OP)Я не буду сагать C#-макаку, ибо есть более раковые имбецилы чем ты, просто знай, что ты - долбоёб, который не может 10 минут почитать синтаксис.
>>130269336если ты еще линканешь где почитать, я тебя на руках пронесу. У меня только кривая методичка.
>>130269332ОП, ты хочешь чтобы заработало? или понять почему не работает? это разные виды помощи, просто скажи что тебе нужно
Сделай размер gresult 400 одномерный массив
>>130269328Я, вероятно, очень тупой, но я не понял. Можно чуть доступнее?
>>130268465 (OP)пойду на ideone.com решуподожди минут 15
>>130269450И то, и то. Никогда не было интересно сделать и не понять.
>>130269378>если ты еще линканешь где почитать, я тебя на руках пронесу. У меня только кривая методичка. Что ты за макака такая если гуглить не умеешь? Спасибо, абу!
>>130269508Это с++ же, не?
>>130269541Это кресты, да.
>>130269469Тем временем бамп
>>130269592так не компилится.
>>130269609Семантика какая?Ты как указатели пишешь?
>>130269156>>130269126>>130269104>>130269059???
>>130269681подумали?если мы не знаем что такое указатель и как двумерный массив лежит в памяти nothing to do here
сука ты еще под винду с conio.h делаешь чому не scanf?
>>130268465 (OP)https://www.youtube.com/watch?v=lL0J1pRaTYAЩас пришлю на почту.
тебе именно на си надо ОП?
ладно ОП, сам был как ты тупой студентотой, но ты не делаешь что тебя просят, хотя бы отформатировать код и залить на ideone.com ибо твое говно нечитабельно, так что иди нахуй
>>130268465 (OP)strcpy(gresult, temp);puts (gresult);пропиши, по какому индексу обращаться
>>130269980В коде прописано, сюда не скопировалось просто. >>130269665Или я невероятно туп, или я не пользуюсь указателями.
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char gresult[10][40], temp[40], pref[40]; int t = 0, i, j, k; int hui = 0; printf("vvedite prefix: \n"); gets(pref); k = strlen(pref); printf("vvedite 10 slov: \n"); for (i = 0; i < 10; i++) { gets(temp); for (j = 0; j < k; j++) { if (temp[j] == pref[j]) t++; } if (k == t) { strcpy(gresult[hui], temp); hui++; } t = 0; j = 0; } i = 0; puts("slova s prefixom: \n"); for (i = 0; i < hui; i++) puts(gresult); return 0;}
>>130270050ты ими пользуешься сейчас, но ты не понимаешь почему ты ими не пользуешься
>>130270050Алсо, прописан индекс (i) в обоих случаях, но скобки квадратные.
>>130270075сука содомит, прекращай со своим форматированием
>>130270094это не я.
>>130268465 (OP)>Анончик, вновь прошу помощи с лабой по погроммированию. >Суть такова: вводим приставку(несколько букв), далее вводим 10 слов, выводим слова с этой приставкой из числа введенных. >Программа компилируется, запускается, выводит первое слово с приставкой и кучу каких-то странных символов. Где косяк?>Код:> #include <stdio.h>> #include <conio.h>> #include <string.h>> main ( )> { char gresult[10][40], temp[40], pref[40];> int t=0, i,j,k;> printf("vvedite prefix: \n");> gets(pref);> k=strlen(pref);> printf("vvedite 10 slov: \n");> for (i=0; i<10; i++)> {> gets(temp);> for (j=0; j<k; j++ )> { if (temp[j]=pref[j])> t++;> }> if (k==t)> strcpy(gresult, temp);> j=0;> }> i=0;> puts("slova s prefixom: \n");> for (i=0; i< 10; i++) puts (gresult);> getch();> return 0;> }>>130270094ето яМакаба херит пробелы, увы
>>130270081В смысле, они задействованы, но что-то идет не так, или что?
>>130270075я написал эту херню и она работает.радуйся бля
>>130270168горячо! горячо!!!>puts (gresult);что принимает на вход функция puts?
ауахуаху проиграл с мамкиного программистастрадай уебище ща еще пару зада4ек и уже 150к в месяц будешь =)
>>130270234gresult[0]ура
>>130270195Спасибо, анончик. Работает. Сейчас я пойду покурить и попробую понять, почему.
>>130270267а почему не gresult[9]?
>>130270371А потому что по дефолту берётся нулевой элемент массива
>>130270396сука содомит, все умываю руки, пиздец какой то
>>130270442Я не оп.Всмысле пиздец?Я неправ что ли?
>>130270442puts(gresult) это тоже самое, что иputs(gresult[0])
>>130270462что значит берется по дефолту нулевой элемент массива?
Покурил. Разница между программой анончика и моей в итоге получилась в том, что в итоговый массив анончика слова с префиксом залетали под упорядоченными индексами, а в мой нет. Неужто если у меня в массиве заданы 1 7 и 9 элемент, например, и я херачу цикл с 1 по 10 на вывод, то это так не работает?
>>130270550У тебя все херачилось в первый элемент массива
>>130270522да там gresult стояло. gresult. Макаба хавает квадратные скобки почему-то.
>>130270522>>130270462ну ребята gresult - это указатель массив указателей на char, а gresult[0] - это указатель на массив gresult[0][40], разве нет? это же разные вещи
>>130270570Опять обосрался. gresult(i). Пусть такие скобки будут
>>130270522>>130270538
>>130269561какие блять кресты? это плоский си
>>130270567>>130270570>>130270584
оп а что будет если слова пустые? а префикс не пустой?
>>130270577Массив в памяти располагается единым блоком по строчкам.Обращаясь к gresult, мы по можем получить содержание куска памяти от начала массива, до "\0"(то бишь gresult[0])То бишь вот>>130270522
>>130270653Тогда переменная-счетчик не будет увеличиваться, и слов с префиксом не будет выведено, я полагаю.
>>130270690У меня блять экзамен через 3 часа, а я поясняю школьникам на двачах аллокацию двумерных массивов.Блять
>>130270690а если в gresult[0] не была скопирована строка, а массив никак не проиницилизорован ОПом, что в таком случае будет?
>>130270774А хуйня какая-то выведется(неиницилизированные данные)
всем программистам задачка в этом треде,есть массив размера N с int числами и число S, найдите два числа в массиве сумма которых равна S
решение задачи из ОП-поста на крестах:int main(){ std::size_t const count = 3; std::cout << "prefix?" << std::endl; std::string prefix; std::cin >> prefix; std::cout << "enter words:" << std::endl; std::string words[count]; for (std::size_t i = 0; i < count; ++i) { std::cin >> words; } std::cout << "results:" << std::endl; auto prefix_length = prefix.length(); for (std::size_t i = 0; i < count; ++i) { auto const& word = words; if (word.length() >= prefix_length && word.substr(0, prefix_length) == prefix) { std::cout << word << std::endl; } } return 0;}и да, ОП, код форматируй, прежде чем показывать его людям. смотреть стыдно.
>>130270894пиздец, распидорасило, лол. ушатал вакабу
>>130270894компилировать пробовал?>std::string words[count];>for (std::size_t i = 0; i < count; ++i)>{>std::cin >> words;>}давай подумаем что тут не так
>>130270914https://ideone.com/oE4SM6
>>130270894>auto const& word = words;>if (word.length() >= prefix_length && >word.substr(0, prefix_length) == prefix)>{>std::cout << word << std::endl;>}и тут тоже мне не нравится чет
>>130271012вакаба тут не так. сожрала индексацию и нахуевертила \t вместо табов
сделал, проверяйте
>>130269486>>130268465 (OP)https://ideone.com/oxpX8PЛови.Только если префикс будет длинее слова оно охуеет. Сам допилишь, если надо.
>>130271042см. ссылку на ideone, там код не испорчен макабой
а вообще, решать такую задачу на крестах, и уж тем более на си, дело неблагодарное.
>>130268465 (OP)На языке программированияhttp://ideone.com/nfe2rX
лол блять, на каком это курсе такое задают?
>>130271209скажи, джедай, на практике haskell приходится применять? если да, то что за задачи?
>>130271339https://code.facebook.com/posts/745068642270222/fighting-spam-with-haskell/
Мимопроходил. Это C? Какой в жопу "массив символов это строка"? Указатель на начало массива чаров - "строка". Массив строк -- это подзаебаться писать на уровней ОПа в сях.
Хочу написать это на си сейчас.
>>130272217
>>130268465 (OP)Тред не читал, маллока нет, поэтому твой массив изговна рандомного, наполняющего память.
>>130270848Делаю битмап размером в максинт Прохожу второй раз ... вуоля
>>130272892> пытается на C в массив стрингов> выводит что-то странное
>>130272965>>130272892> пытается на C в массив стрингов> выводит что-то странное> указатели? маллок? не, спрошу на двачах
bump
>>130273308скачай любой учебник по C и найди там ответ не вчитываясь
>>130268465 (OP)ЧТО ТАКОЕ?ОЧЕРЕДНОЙ ДУРАЧОК НАЧИТАЛСЯ НА ДВАЧЕ БАЕК ПРО УСПЕШНОСТЬ ГОВНОКОДЕРОВ?
>>130269336Но это не с#
>>130272628Написала http://ideone.com/3Khv2o.
>>130273633есть подозрение что препод не примет инлайн-функцию (или как их там на чистых ссях назвать)
>>130268465 (OP)Что за долбоебы, такой хуйни написать не могут.
>>130273758>инлайн-функцию Там, вроде, нет такого. Или ты про то, что в define?
>>130273812>>130273633Обосрался с этого дефайна.>>130273758Это типа макрос такой ненастоящий. Это допустимо.
>>130273812ага, не помню в упор как это в чистом си называется. Вроде как так писать уже в курсе плюсов учат сейчас
>>130273849Ну если уж доебываться, то и библа стринг уже не чистый си.
>>130273870У нас препод бы жесткий, на вопросе "где взять число Пи" все валились. На хабре была большая паста на этот счет. "Правильный" ответ был взять в мелкософтовой либе и забить на кроссплатформенность и часть версий этой же либы.
>>130273900Ну хуевый препод знач. Вычметоды? Иначе я хуй знает для чего "правильное" настолько число пи надо.
>>130273930пробовали, хуй там. в учебнике написано -- инклудить math. И пох.
>>130273831>>130273849Как сделать, чтобы строка могла быть произвольной длины? Сейчас там >b[100]
>>130274070Погуглила. Нужно почитать про realloc теперь.
bump.
>>130274735бамп
>>130274296Написала с realloc, но ideone почему-то не работает :(
>>130276113Вот сам код https://gist.github.com/anonymous/848d842bb515667ccb4fdf8b91238c93
http://ideone.com/W6zKkg
>>130277460>b,l,k,g,pОпять обосрался, сука.http://ideone.com/V1s6jZ
>>130279140> memsetЗачем это делать?
>>130279548Чтобы исключить мусор, тупой что ли?
>>130282354А зачем это делать?Кстати, это можно было сделать так.>char a[N] = {0}
>>130283932>А зачем это делать?Потому что good practice, поймешь потом когда у тебя программа будет не 50 строк, а 5000.
>>130284215Но для этой задачи это не необходимо. Зачем делать что-то лишнее?
>>130268465 (OP)>Суть такова: вводим приставку(несколько букв), далее вводим 10 слов, выводим слова с этой приставкой из числа введенных. почему нельзя выводить сразу приставку, а после нее слово без пробелов? Нахуя их сращивать?
>>130274070Господи блять, гуглите про динамическую память, память в куче и т.д и т.п. В плюсах это calloc malloc. И не забывай вычищать после себя через free.
>>130288465>>130288465>В плюсах это calloc mallocДаун, плз
И зачем вы страдаете перевыделением памяти, а? Просто считайте йобаслова в массив, и дальше выводите на экран сначала приставку, а потом слово. Не ебитесь в мозг.