Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.96
grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
#1

Сортировка строки по длине слова - C++

24.03.2011, 17:02. Просмотров 3624. Ответов 4
Метки нет (Все метки)

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

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
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <cctype>
 
using namespace std;
 
int main(int argc, char *argv[])
{ 
    char str[] = "Etu stroku nado otsortirovati po dlinne slov";
    char * pch;
    char *list[100];
    int s=0;   
      pch = strtok (str," ,.-");
    while (pch != NULL)
    {      
      list[s] = pch;
      pch = strtok (NULL, " ,.-");      
      s++;
    }  
 
    int i,j;
   
    char S1[20];
    int min_i;
 
    for (i=0; i<s-1; i++)
    {
       min_i=i;       
       for (j=i+1; j<s; j++)
       {
          if (strlen(list[j]) < strlen(list[min_i]))          
             min_i=j;           
       }
       cout << list[min_i] << "\n";         
    }   
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2011, 17:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка строки по длине слова (C++):

Сортировка слов в строке по длине слова - C++
Помогите пожалуйста с алгоритмом сортировки строки. Необходимо осуществить сортировку строки чтобы в начале строки располагалось слово...

Сортировка строк по длине первого слова - C++
Добрый вечер формучане.Облазил весь нет как и этот форум но толком ничего не нашел.Собственно обращаюсь с просьбой решить эту задачку....

Сортировка по длине - C++
На вход подается некоторое количество векторов R2, векторов R3 и отрезков R3. Отсортировать и вывести их по возрастанию длин. Помогите,...

Сортировка рёбер по длине - C++
Ориентированный взвешенный граф задан перечнем дуг (ориентированных рёбер). Отсортировать эти дуги по возрастанию длин, сохранив (в...

Сортировка слов по их длине - C++
Ввести строку. На печать выдать новую строку в которой все слова расположены в порядке возрастания длин слов.

Отсортировать слова по длине - C++
Вот условие программы: &quot;Есть файл со словами. Вывести на экран все слова в которых количество гласных, стоящих на позициях с четными и...

4
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.03.2011, 17:45 #2
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
#include <iostream>
#include <cstring>
#include <cstdio>
 
struct word_t{
  char *_word;
  size_t length;
};
 
#define DELIM " \t\n,.:;?!"
 
void _swap(word_t &w1, word_t &w2){
  word_t tmp = w1;
  w1 = w2;
  w2 = tmp;
}
 
int main()
{
  char str[BUFSIZ] = "Etu stroku nado otsortirovati po dlinne slov", *p;
  word_t words[BUFSIZ];
  int i = 0, j;
  for(p = strtok(str, DELIM); p; p = strtok(NULL, DELIM)){
    words[i]._word = new char[strlen(p) + 1];
    strcpy(words[i]._word, p);
    words[i++].length = strlen(p);
  }
  for(int i_ = 0; i_ < i; ++i_)
    for(j = i_; j < i; ++j)
      if(words[i_].length > words[j].length)
        _swap(words[i_], words[j]);
  for(j = 0; j < i; ++j)
    std::cout << words[j]._word << '-' << words[j].length << '\n';
  for(j = 0; j < i; ++j)
    delete[] words[j]._word;
  return 0;
}
1
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 17:47 #3
А удалять за собой кто будет?
1
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.03.2011, 17:49 #4
Цитата Сообщение от Deviaphan Посмотреть сообщение
А удалять за собой кто будет?
О, пардон, все время забываю.
0
Sylar
2 / 2 / 0
Регистрация: 06.06.2012
Сообщений: 120
23.04.2014, 16:59 #5
http://awmdgroup.wikidot.com/phppractice:sortarray
0
23.04.2014, 16:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2014, 16:59
Привет! Вот еще темы с ответами:

Отсортировать слова по длине - C++
Здравствуйте, у меня есть задание с таким условием: &quot;Есть файл со словами. Вывести на экран все слова в которых количество гласных, стоящих...

Отсортировать слова в предложении по их длине,начиная с наибольшего - C++
отсортировать слова в предложении по их длине,начиная с наибольшего

Дополнить каждое слово предложения пробелами (по длине максимального слова) - C++
Вот задачка. &quot;Дополнить каждое слово предложения пробелами так, чтобы его длина была равна длине самого длинного слова. Распечатать...

В заданной строке вывести все слова по длине попадающие в заданный интервал - C++
Помогите. Вывести на экран все слова, которые встречаются в заданном строке и по длине попадают в заданный интервал. #include...


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

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

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