Форум программистов, компьютерный форум CyberForum.ru

С использованием функций и указателей отсортировать строки массива строк по убыванию - C++

Восстановить пароль Регистрация
 
Zapomni
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 12
14.09.2013, 18:34     С использованием функций и указателей отсортировать строки массива строк по убыванию #1
Суть задачи: с использование функций и указателей отсортировать строки массива строк по убыванию.
Скажите что это оно выдает в выводе первой строки....не считает нормально кол-во пробелов в строке...причем именно в первой. В остальных все нормально .....
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <math.h>
#pragma hdrstop
using namespace std;
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
int Input_size();
char** Input_mas(int n);
char** Sortirovka(char **mas,int n);
 
int main(int argc, char* argv[])
{
   clrscr();
   int n;
   n = Input_size();
   char **mas = Input_mas(n);
   Sortirovka(mas,n);
   getch();
        return 0;
}
//---------------------------------------------------------------------------
int Input_size()
{
        int n;
        cout << "Vvedite kol-vo strok = " << endl;
        cin >> n;
        cin.ignore(1);
        return n;
}
 
char** Input_mas(int n)
{
        char **mas = new char*[n];
         for(int i=0;i < n;i++)
         {
                mas[i] = new char[25];
                cin.getline(mas[i],25);
         }
         return mas;
}
char** Sortirovka(char **mas,int n)
{    char *probelchic = new char[25];
     int *probel = new int[n];
        for(int i = 0;i < n;i++)
        {
                probel[i] = 0;
                for(int j = 0;j < 25;j++)
                 {     cout << mas[i][j];
                        if(mas[i][j+1] != ' ')
                        {
                                if(mas[i][j] == ' ')
                                probel[i] = probel[i]+1;
 
                        }
                 }
                 probel[i] = probel[i]+1;
                 cout << probel[i] << endl;
        }
        for(int i = 0;i < n;i++)
        {
                for(int j = 0; j < (n-i); j++)
                {
                        if(probel[j] < probel[j+1])
                        {
                                strcpy(probelchic,mas[j]);
                                strcpy(mas[j],mas[j+1]);
                                strcpy(mas[j+1],probelchic);
                        }
                }
        }
        for(int i = 0;i < n;i++)
        cout << mas[i] << endl;
 
 
}
 
 /*for(int j = 0;j < 25;j++)
                        {
                                mas[i][j] = probelchic[j];
                                mas[i][j] = mas[i+1][j];
                                mas[i+1][j] = probelchic[j];
                        } */
Миниатюры
С использованием функций и указателей отсортировать строки массива строк по убыванию  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2013, 18:34     С использованием функций и указателей отсортировать строки массива строк по убыванию
Посмотрите здесь:

Отсортировать строки массива целых чисел по убыванию. C++
C++ Обработка строки с использованием указателей
Обработка строк с использованием указателей: вывести слова в два столбика, по четности их длины C++
Составить программу на языке C++, состоящую из двух функций с использованием указателей. В главной функции вып C++
C++ Составить программу на языке С++ для обработки строк с использованием указателей
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.09.2013, 20:17     С использованием функций и указателей отсортировать строки массива строк по убыванию #2
Если так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
char** Sortirovka(char **mas,int n)
{    char *probelchic = new char[25];
     int *probel = new int[n];
        for(int i = 0;i < n;i++)
        {
                probel[i] = 0;
                int size = strlen(mas[i]); // добавить
                for(int j = 0;j < size;j++) // изменить
                 {     cout << mas[i][j];
                        if(mas[i][j+1] != ' ')
                        {
            ....
theadamo86
 Аватар для theadamo86
7 / 7 / 0
Регистрация: 14.09.2013
Сообщений: 168
14.09.2013, 21:36     С использованием функций и указателей отсортировать строки массива строк по убыванию #3
Мне как новичку интересно что делает это строка:
Цитата Сообщение от Zapomni Посмотреть сообщение
cin.ignore(1);
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
14.09.2013, 21:38     С использованием функций и указателей отсортировать строки массива строк по убыванию #4
Цитата Сообщение от theadamo86 Посмотреть сообщение
Мне как новичку интересно что делает это строка:
http://www.cplusplus.com/reference/i...stream/ignore/
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 04:48     С использованием функций и указателей отсортировать строки массива строк по убыванию #5
Цитата Сообщение от theadamo86 Посмотреть сообщение
Мне как новичку интересно что делает это строка:
Пропускает '\n', который остаётся в потоке чтения после cin >>. Если этого не сделать, то, для getline(), это будет первый символ в строке. Она обработает его как пустую строку, и код, не останавливаясь на ввод, пойдёт дальше.
Yandex
Объявления
15.09.2013, 04:48     С использованием функций и указателей отсортировать строки массива строк по убыванию
Ответ Создать тему
Опции темы

Текущее время: 13:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru