170 похожих чатов

#Include <stdio.h> #include <string.h> int main () { char arr[1000]; char

*ptr1,*min;
gets(arr);
ptr1 = strtok(arr," ");
min = ptr1;
while(ptr1!=NULL)
{
min=(strlen(ptr1)>strlen(min)) ? min : ptr1;
ptr1 = strtok(NULL," ");
}
puts(min);
return 0;
}

Данный код выводит наименьшее слово из предложения, введённого из клавиатуры. Вопрос...а если мне надо выводить 2 таких слов, какое условие мне нужно наложить, на какое-то, допустим, char *min2?
Я пробовал пойти через strcmp, которое бы смотрело, не одинаковые ли min1 и min2 по символьно, чтобы оно не выводило одно и то же слово. Но как-то оно не пошло...

11 ответов

14 просмотров

Ну просто не один максимум делаешь, а массив таких, 2 или 5 -сколько надо. По сути это стек максимумов

Vetal
не совсем понимаю...

Делаешь массив из скажем 3х элементов. Сравниваешь не с одним, а со всеми элементами, и если надо, вставляешь в нужное место этого массива, а остальное из него выпадает (один лишний элемент)

Vetal- Автор вопроса
Ilya Zviagin
Делаешь массив из скажем 3х элементов. Сравниваешь...

Чёт мне сложно это понять( То есть мне нужно убрать всё, что я написал ,и пойти через массив?

Vetal
Чёт мне сложно это понять( То есть мне нужно убрат...

Слушай, я даже уже забыл, что тебе там надо было. Видимо, да. Подумай, может это наведёт тебя на решение.

Вот задание. Два наименьших слова - это как ? Наименьшее, и наименьшее из оставшихся , искключая наименьшее ?

Vetal- Автор вопроса
Ilya Zviagin
Вот задание. Два наименьших слова - это как ? Наим...

Я имел ввиду, выводить два слова, у которых наименьшее количество букв

#include <stdio.h> #include <string.h> int main () { char arr[1000]; char *ptr1,*min; gets(arr); ptr1 = strtok(arr," "); while(ptr1) { min= strlen(ptr1)>strlen(min) ? min : ptr1; ptr1 = strtok(NULL," "); } puts(min); return 0; }

Vetal
Я имел ввиду, выводить два слова, у которых наимен...

Ну, я всё понял правильно сразу же, я просто уточнил. Ну вот так и делать, у тебя сейчас один минимум, а должен быть массив минимумов. На каждом шаге ты вместо вычисления одного минимума вычисляешь два. Делаешь массив из трёх элементов (указателей), туда кладёшь твои два минимума и ещё текущее слово. Сортируешь по длине слова. И берёшь как новые два минимума два наименьших по длине слова — первые два элемента. И так до конца списка слов.

Vetal
Я имел ввиду, выводить два слова, у которых наимен...

Кстати, не выводи через puts(). Вывод должен всегда содержать какие-то слова ПЛЮС твои данные. А то у тебя будет пустая строка — ты вообще ничего в выводе не увидишь.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта