Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/41: Рейтинг темы: голосов - 41, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 02.01.2012
Сообщений: 3

Найти и вывести слово, содержащее наибольшее количество букв

02.01.2012, 19:43. Показов 8386. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Элементами слов могут быть любые символы. Найти и вывести слово, содержащее наибольшее количество букв..
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.01.2012, 19:43
Ответы с готовыми решениями:

вывести слово, содержащее наибольшее количество гласных букв(Русских)
Ввести строку, вывести слово, содержащее наибольшее количество гласных букв..... Если можно то сделать как можно легче с простыми...

Найти слово в файле, содержащее наибольшее количество указанных букв
Здравствуйте, помогите пожалуйста с решением задачи: Дан файл, содержащий текст на русском языке и некоторая буква. Найти слово,...

Вывести слово, содержащее наибольшее количество цифр
1)В заданном текстовом файле элементами слов могут быть как буквы, так и цифры. Вывести слово, содержащее наибольшее количество цифр ...

17
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
02.01.2012, 19:52
Лучший ответ Сообщение было отмечено как решение

Решение

Если элементами слова могут быть любые символы, то длина самого длинного слова равна количеству символов в строке.
3
 Аватар для Высокий
250 / 250 / 135
Регистрация: 09.04.2011
Сообщений: 524
02.01.2012, 22:27
Примерный алгоритм:
1. (если знаки препинания не считаются частью слова) чистите строку от всего кроме букв\цифр\пробелов. (регулярные выражения)
2. Разбиваете строку на массив слов, используя пробел как разделитель.
3. Находите самое длинное слово простым перебором элементов массива.
1
16 / 16 / 3
Регистрация: 16.08.2011
Сообщений: 62
02.01.2012, 22:58
Вот братюня

C#
1
2
3
4
5
6
7
8
9
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
using System;
 
namespace LongestWord
{
    class Program
    {
        static void Main()
        {
        Begin:
            Console.WriteLine("Введите предложение");
            var sentence = Console.ReadLine();
 
            if (sentence != null)
            {
                var words = sentence.Split(' ');
 
                var max = "";
                var position = 0;
                for (int i = 0; i < words.Length; i++)
                {
                    var word = words[i];
                    if (word.Length > max.Length)
                    {
                        max = word;
                        position = i + 1;
                    }
                }
                Console.WriteLine();
                Console.WriteLine("Самое длинное слово в предложение это: {0}" + Environment.NewLine +
                                  "Позиция слова в предложение: {1}" + Environment.NewLine +
                                  "Спасибо за использование программы", max, position);
                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("Вы ничего не ввели!");
                goto Begin;
            }
 
 
        }
    }
}
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
02.01.2012, 23:55
Цитата Сообщение от iliabest Посмотреть сообщение
var max = "";
max = word;
А зачем хранить ссылку на найденное слово, если уже сохраняется его индекс в массиве?
Почему потом в консоль нельзя просто вывести words[position]?
0
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
03.01.2012, 00:04
iliabest, Чрезмерное использование оператора - var, ведет к плохому программированию. В вашем коде, он использован большое количество раз.
0
03.01.2012, 00:41

Не по теме:

Цитата Сообщение от irineyxxx Посмотреть сообщение
Чрезмерное использование оператора - var, ведет к плохому программированию.
Поясните, если не сложно, что означает "плохое программирование".

1
 Аватар для irineyxxx
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730
03.01.2012, 00:57
kolorotur, Ну я где-то в книжке такое вычитал, что так нельзя.
0
774 / 554 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
03.01.2012, 01:40
irineyxxx а что goto не заметил?тоже плохое программирование !
C#
1
goto Begin;
0
03.01.2012, 02:08

Не по теме:

Цитата Сообщение от irineyxxx Посмотреть сообщение
kolorotur, Ну я где-то в книжке такое вычитал, что так нельзя.
про анонимные типы в той книжке умолчали? :)
а вообще..var лишь может усложнить легкость чтения кода, но и то, имхо, лишь в тех случаях, когда читаешь исходники с листа. с тем же интеллисенсом легкость чтения нисколько не теряется, а наоборот, на мой взгляд, только удобнее становится...
по сути, не считая анонимных типов, var - это такой же синтаксический сахар, как и nullable, например... и юзать его или нет - каждый решает сам...

1
03.01.2012, 02:10

Не по теме:

Цитата Сообщение от Vitall Посмотреть сообщение
а что goto не заметил?тоже плохое программирование !
Чем же он так плох? :)

Цитата Сообщение от znake Посмотреть сообщение
не считая анонимных типов, var - это такой же синтаксический сахар, как и nullable, например... и юзать его или нет - каждый решает сам...
Разрешите согласиться.

0
03.01.2012, 02:36

Не по теме:

Цитата Сообщение от kolorotur Посмотреть сообщение
Чем же он так плох?
Оператор GOTO в языках высокого уровня является объектом критики, поскольку чрезмерное его применение приводит к созданию нечитаемого «спагетти-кода» )))
Статья полностью в википедии http://ru.wikipedia.org/wiki/GOTO:read:

0
 Аватар для Mr.Santiaga
4 / 4 / 2
Регистрация: 03.11.2010
Сообщений: 72
03.01.2012, 02:39
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        static void Main(string[] args)
        {
            int wordLen = 0;
            string desired_word = string.Empty;
            char[] chars = { ' ' }; //сюда засовываешь элементы, которыми могут разделятся слова. Например {' ', '!', '-'}
            string data = Console.ReadLine();
            string[] words = data.Split(chars);
            foreach (string word in words)
            {
                if (word.Length > wordLen)
                {
                    wordLen = word.Length;
                    desired_word = word;
                }
            }
            Console.WriteLine("Слово максимальной длины - {0}, длина - {1}", desired_word, wordLen);
            Console.ReadKey();
        }
0
0 / 0 / 0
Регистрация: 02.01.2012
Сообщений: 3
03.01.2012, 11:26  [ТС]
задача на множество..
0
16 / 16 / 3
Регистрация: 16.08.2011
Сообщений: 62
03.01.2012, 23:00
Хехех, понятно. спасибо за совет kolorotur и вправду можно было сократить на одну переменную)..

По поводу goto это по сути не принципиально поскольку прога небольшая но исходник я исправил..

И последнее замечание это про var.. Если честно, плохим программированием я бы это не назвал.. Поскольку неявный тип лишь говорит компилятору найти наиболее подходящий тип для переменной из выражения стоящего справа... Таким образом компилятор применит unit где нужно а где нужно поставит decimal. Разве это не упрощает жизнь?) Ведь о типе переменной можно судить и по ссылки на созданный объект в ней..

Замечания предельно хорошие, спасибо..

Вот, что я исправил

C#
1
2
3
4
5
6
7
8
9
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
using System;
 
namespace LongestWordRepair
{
    class Program
    {
        static void Main()
        {
            Console.Write("Введите предложение");
            var sentence = Console.ReadLine();
 
            if (!string.IsNullOrEmpty(sentence))
            {
                var words = sentence.Split(' ');
 
                var position = 0;
                for (var i = 0; i < words.Length; i++)
                {
                    var word = words[i];
                    if (word.Length > words[position].Length)
                    {
                        position = i;
                    }
                }
                Console.WriteLine();
                Console.WriteLine("Самое длинное слово в предложение это: {0} \n" +
                                  "Позиция слова в предложение: {1} \n" +
                                  "Спасибо за использование программы", words[position], position + 1);
                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("Вы ничего не ввели!");
                Console.WriteLine();
                Main();
            }
        }
    }
}
0
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
03.01.2012, 23:24
C#
1
35: Main();
Зачем применять рекурсию там, где она не нужна? Замена одного антипаттерна другим - это не есть хорошо...
0
16 / 16 / 3
Регистрация: 16.08.2011
Сообщений: 62
04.01.2012, 00:51
Ну я сделал с goto оказалось плохо и рекурсия тоже... Прошу - ваш наиболее лучший вариант?
0
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
04.01.2012, 01:03
Например так:

C#
1
2
3
4
5
6
7
8
9
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
using System;
 
namespace justForFun
{
    class MainClass
    {
        public static void Main()
        {
            Console.Write("Введите предложение");
 
            string sentence;
            while ((sentence = Console.ReadLine()) == "" )
            {
                Console.WriteLine("Вы ничего не ввели!");
                Console.WriteLine();
            }
 
            var words = sentence.Split(' ');
 
            var position = 0;
            for (var i = 0; i < words.Length; i++)
            {
                var word = words[i];
                if (word.Length > words[position].Length)
                {
                    position = i;
                }
            }
            Console.WriteLine();
            Console.WriteLine("Самое длинное слово в предложение это: {0} \n" +
                              "Позиция слова в предложение: {1} \n" +
                              "Спасибо за использование программы", words[position], position + 1);
            Console.ReadLine();
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.01.2012, 01:03
Помогаю со студенческими работами здесь

Вывести первое слово, содержащее максимальное количество букв
дано предложение которое заканчивается точкой. Слова предложения разделены между собой только одним пробелом.Вывести первое слово,...

Найти и вывести слово, содержащее наибольшее количество согласных букв
Элементами слов могут быть любые символы. Найти и вывести слово, содержащее наибольшее количество согласных букв

Ввести строку, вывести слово, содержащее наибольшее количество гласных букв
Привет Ребят,мне нужно сделать лабораторную по информатике,вот что мне надо Ввести строку, вывести слово, содержащее наибольшее...

Найти слово, содержащее наибольшее количество указанных букв
program lab81; var c:char; s:string; f:text; begin writeln('--- Ваш текст ---'); ...

Найти слово, содержащее наибольшее количество различных букв
Дана строка. Найти слово содержащее наибольшее количество РАЗЛИЧНЫХ букв. Строку изменять нельзя. По возможности не использовать вторую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru