Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Miteud
2 / 2 / 3
Регистрация: 13.11.2013
Сообщений: 112
1

Определить порядковый номер слова, содержащего наименьшее количество символов

21.04.2014, 18:01. Просмотров 576. Ответов 5
Метки нет (Все метки)

Суть задания состоит в том, чтобы определить порядковый номер слова, содержащего наименьшее количество символов. Удалось реализовать это через нахождение пробелов между словами, но при этом необходимо в самом начале и в конце вставлять пробел. Затем попытался упростить до того, чтобы в начале ничего не ставить, а в конце ставить точку. Вот код:

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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String s1 = LabeledEdit1->Text;
int i,j=1;
int N = s1.Length();
int *a = new int[N];
*a = 0;
for (i=1;i<=N;i++)
 {
  if (s1[i]==' '||s1[i]=='.')
   {
    *(a+j) = i;
    j++;
   }
 }
int min=*(a+1)- *a - 1;
int ind1 =0;
for(int i=0;i<j-1;i++)
  if(min>*(a+i+1) - *(a+i) - 1)
    {
    min=*(a+i+1) - *(a+i) - 1;
    ind1 = i;
    }
LabeledEdit2->Text = ind1+1;
}
Прошу помощи в полном упрощении вплоть до того, чтобы в конце строки из слов не ставить никакой знак вовсе.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2014, 18:01
Ответы с готовыми решениями:

Вывести на экран порядковый номер слова минимальной длины и количество символов в этом слове
Здравствуйте. Меня интересует вопрос по работе с компонентом TComboBox. У меня есть задание:...

Вывести на экран порядковый номер слова максимальной длины
Дано задание: дана строка символов, состоящая из произвольного текста, слова разделены пробелами....

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

Найти наименьшее слово строки и вывести на экран его порядковый номер и количество символов
Нужно ввести строку найти наименьшее слово и вывести на экран его порядковый номер и количество...

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

5
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 27
Регистрация: 28.04.2013
Сообщений: 2,463
Записей в блоге: 10
Завершенные тесты: 2
21.04.2014, 18:26 2
А занести в массив и сравнить колличество елементов?
1
Miteud
2 / 2 / 3
Регистрация: 13.11.2013
Сообщений: 112
21.04.2014, 18:31  [ТС] 3
Можно поподробнее... ?
0
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 27
Регистрация: 28.04.2013
Сообщений: 2,463
Записей в блоге: 10
Завершенные тесты: 2
21.04.2014, 19:10 4
Miteud, ну например есть у нас слово, вы заносим его в массив, считываем елементы от 1 слова( например их будет три, а от второго пять, сравниваем их, выводим сообщение о длинне слов, их несовпадении...
Потом присваеваем порядковый номер каждому слову, сортируем их и в конце концов выводим в необходимом порядке... Как-то так...
1
demon_7
259 / 191 / 60
Регистрация: 12.05.2013
Сообщений: 857
21.04.2014, 20:57 5
А я вроде знаю как проще :3
Используйте StringList, в него кладите ваш текст, потом с помощью DelimitedText разбиваете его на слова, и уже сравниваете длины строк между собой, порядковый номер строки с наименьшим количеством символов выводите в результат :3
В теории вроде все круто получается, реализовать сейчас возможности нет, но могу завтра с этим помочь, а пока сами)
1
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
27471 / 18396 / 7278
Регистрация: 22.10.2011
Сообщений: 32,355
Записей в блоге: 6
21.04.2014, 22:41 6
Все правильно, самый простой метод:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <memory>
#include <math.hpp>
 
// ...
 
int __fastcall DoCompare(TStringList *L, int i_1, int i_2)
{
    return Sign(L->Strings[i_1].Length() - L->Strings[i_2].Length());
}
 
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    std::auto_ptr<TStringList> L(new TStringList);
    L->DelimitedText = LabeledEdit1->Text;
    for(int i = 0; i < L->Count; i++) L->Objects[i] = (TObject*)(i + 1);
    L->CustomSort(DoCompare);
    ShowMessage(IntToStr((int)L->Objects[0]));
}
1
21.04.2014, 22:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2014, 22:41

Вывести на экран порядковый номер слова минимальной длины и количество символов в этом слове
народ плиз помогите написать прогу в с++ Дана строка символов, состоящая из произвольного текста,...

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

Вывести на экран порядковый номер слова минимальной длины в строке, и количество неповторяющихся символов
Дана строка символов, состоящая из произвольного текста, слова разделены пробелами. Выведите на...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru