Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
no SOPA
0 / 0 / 2
Регистрация: 20.02.2012
Сообщений: 41
#1

Упорядочить текст по длине строки по убыванию - C++

22.04.2012, 19:04. Просмотров 908. Ответов 3
Метки нет (Все метки)

помогите пожалуйста =)

текст:

I vpilsya komar kak raz
Tetke pryamo v praviy glaz.
Povariha poblednela,
Obmerla i okrivela.
Slugi, svatiya i sestra
S krikom lovyat komora.
<<Rasproklyataya ti moshka!
Mi tebya!..>> A on v okoshko,
Da spokoino v svoi udel
Cherez more poletel.

сделать функцией.
http://www.cyberforum.ru/cpp-beginners/thread185014.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2012, 19:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Упорядочить текст по длине строки по убыванию (C++):

Упорядочить строки матрицы по убыванию значений произведений наименьшего и наибольшего элементов каждой строки
Дана матрица чисел M*N.Упорядочить строки матрицы по убыванию значений...

Упорядочить строки матрицы по убыванию
Дана матрица А(n,m). Упорядочить строки матрицы по убыванию суммы находящихся в...

Массив: Упорядочить строки массива по убыванию
задание на рисунке

Упорядочить строки матрицы по не убыванию наибольших элементов
Дана вещественная матрица размером 3 x 4. Упорядочить ее строки по не убыванию...

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

3
zitxbit
89 / 741 / 279
Регистрация: 11.04.2012
Сообщений: 971
24.04.2012, 15:37 #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 <stdio.h>
#include <string.h>
 
void swap(char* sz1, char* sz2);
 
int _tmain(int argc, _TCHAR* argv[])
{
    static char ppsz[10][256] = { "I vpilsya komar kak raz", 
                                  "Tetke pryamo v praviy glaz", 
                                  "Povariha poblednela,", 
                                  "Obmerla i okrivela.", 
                                  "Slugi, svatiya i sestra", 
                                  "S krikom lovyat komora.", 
                                  "<<Rasproklyataya ti moshka!", 
                                  "Mi tebya!..>> A on v okoshko,", 
                                  "Da spokoino v svoi udel", 
                                  "Cherez more poletel" };
 
    for (int i = 0; i < 10; i++)
        for (int k = 0; k < 10; k++)
            if (strlen(ppsz[k]) < strlen(ppsz[i]))
                swap(ppsz[i], ppsz[k]);
 
    for (int q = 0; q < 10; q++)
        printf("%s\n",ppsz[q]);
 
    return 0;
}
 
void swap(char* sz1, char* sz2)
{
    char* temp = new char[256];
    strcpy(temp, sz1);
    strcpy(sz1, sz2);
    strcpy(sz2, temp);
    delete[] temp;
}
1
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
24.04.2012, 16:11 #3
Вот всё-таки не понимаю я прикола написания С-подобных программ на С++. Не, я понимаю, что учат так, не понимаю, с какой целью.
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 <string>
#include <set>
#include <algorithm>
#include <iterator>
 
struct LenCmp {
    bool operator () (const std::string & a, const std::string & b) {
        return b.length() < a.length();
    }
};
 
int main(){
    const int ROWS(10);
    std::string text[ROWS] = {
        "I vpilsya komar kak raz", 
        "Tetke pryamo v praviy glaz", 
        "Povariha poblednela,", 
        "Obmerla i okrivela.", 
        "Slugi, svatiya i sestra", 
        "S krikom lovyat komora.", 
        "<<Rasproklyataya ti moshka!", 
        "Mi tebya!..>> A on v okoshko,", 
        "Da spokoino v svoi udel", 
        "Cherez more poletel"
    };
    
    std::cout << "Unsorted:" << std::endl;
    std::copy(text, text + ROWS, std::ostream_iterator<std::string>(std::cout, "\n"));
    
    std::multiset<std::string, LenCmp> ms(text, text + ROWS);
    std::cout << "\nSorted:" << std::endl;
    std::copy(ms.begin(), ms.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
    std::cout << std::endl;
    
    return 0;
}
1
no SOPA
0 / 0 / 2
Регистрация: 20.02.2012
Сообщений: 41
24.04.2012, 20:42  [ТС] #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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
void output (int n, char a[][40]);
int rech (int n, char a[][40]);
int point (char a[][40], int i);
void sort (int n, char *a[]);
int main()
 {
 const int n=10;
 int i,r,p;
 char mas[n][40]={"I vpilsya komar kak raz",
          "Tetke pryamo v praviy glaz.",
          "Povariha poblednela,",
          "Obmerla i okrivela.",
          "Slugi, svatiya i sestra",
          "S krikom lovyat komora.",
          "<<Rasproklyataya ti moshka!",
          "Mi tebya!..>> A on v okoshko,",
          "Da spokoino v svoi udel",
          "Cherez more poletel."};
 char *pmas[]={"I vpilsya komar kak raz",
          "Tetke pryamo v praviy glaz.",
          "Povariha poblednela,",
          "Obmerla i okrivela.",
          "Slugi, svatiya i sestra",
          "S krikom lovyat komora.",
          "<<Rasproklyataya ti moshka!",
          "Mi tebya!..>> A on v okoshko,",
          "Da spokoino v svoi udel",
          "Cherez more poletel."};
 clrscr();
 output(n,mas);
 r=rech(n,mas);
 cout<<"\nkol-vo pryamoi rechi = "<<r<<"\n";
 for (i=0; i<n; i++)
  {
  p=point(mas,i);
  cout<<"\nkol-vo tochek v stroke "<<i<<" = "<<p;
  }
 cout<<"\n\n";
 sort(n,pmas);
 getch();
 return 0;
 }
void output (int n, char mas[][40])
 {
 int i;
 cout<<"===================================\n";
 cout<<"===================================\n";
 cout<<"===================================\n";
 for (i=0; i<n; i++)
  cout<<"***  "<<mas[i]<<"\n";
 cout<<"===================================\n";
 cout<<"===================================\n";
 cout<<"===================================\n";
 }
int rech (int n, char mas[][40])
 {
 int i,j,k=0;
 for (i=0; i<n; i++)
  {
  j=0;
  while (mas[i][j]!='\0')
   {
   if (mas[i][j]=='<')
   k++;
   j++;
   }
  }
 return(k/2);
 }
int point (char mas[][40], int i)
 {
 int j=0,k=0;
 while (mas[i][j]!='\0')
  {
  if (mas[i][j]=='.')
    k++;
  j++;
  }
 return (k);
 }
void sort (int n, char *pmas[])
 {
 int i,tmp=1;
 char *st;
 while (tmp==1)
  {
  tmp=0;
  for (i=0; i<n-1; i++)
   if (strlen(pmas[i+1])>strlen(pmas[i]))
    {
    st=pmas[i];
    pmas[i]=pmas[i+1];
    pmas[i+1]=st;
    tmp=1;
    }
  }
 for (i=0; i<n; i++)
  cout<<pmas[i]<<"\n";
 }
Добавлено через 15 минут
ошибся разделом =(
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2012, 20:42
Привет! Вот еще темы с решениями:

Упорядочить строки матрицы по убыванию их наибольших элементов
В общем задача такая, матрицы. Дана вещественная матрица X размера m n....

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

Упорядочить строки матрицы по убыванию сумм элементов строк
Пожалуйста помогите сделать так, чтобы программа работала так, как требуется:...

Строки матрицы упорядочить по убыванию элементов ее первого столбца
Нужно написать программу для вычисления массива (в функции). Сначала полученный...


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

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

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