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

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

Войти
Регистрация
Восстановить пароль
 
Zapomni
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 16
#1

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

14.09.2013, 18:34. Просмотров 666. Ответов 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
//---------------------------------------------------------------------------
 
#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++
Помогите решить задачу. Заданная статическая матрица B(N,N). Отсортировать ее строки по убыванию сумм элементов каждой строки....

Отсортировать строки массива целых чисел по убыванию. - C++
Отсортировать строки массива целых чисел по убыванию.

Объясните программу сложения строк с использованием указателей - C++
// Программа на СИ ))) #include &lt;stdio.h&gt; int main() { char string1; char string2; ...

Составить программу на языке С++ для обработки строк с использованием указателей - C++
Дана строка. На печать выдать слова, которые имеют четную длину и одинаковые первую и последние буквы Добавлено через 13 секунд Help...

Обработка строки с использованием указателей - C++
Проблема такая: Есть программа для подсчета кол-ва вхождений символа в строку и удаления последовательности из 2х и более символов. ...

Обработка строк с использованием указателей: вывести слова в два столбика, по четности их длины - C++
Дана строка. Распечатать слова в два столбика. 1 столбик — слова, имеющие четное количество букв, а второй — нечётное. Добавлено через...

Заполнение массива с использованием указателей - C++
Необходимо заполлнить массив a с использовнием ничего не возвращающей функии и указателей. Однако происходить только заполнение всех...

Обработка массива с использованием указателей - C++
Помогите пожалуйста изменить программу, чтобы она была с динамическим массивом Вот условие задачи: В одномерном массиве из N...

Рисунок в C++ с использованием массива и указателей - C++
Создать одномерный символьный массив размерностью N*N (N - const). Заполнить его содержимое пробелами &quot;_&quot;. Заполнить его содержимое при...

Программа разбиения строки на слова с использованием указателей - C++
Здравствуйте, разъясните пожалуйста, почему в циклах while и инструкции if, условием является указатель? что это значит? это...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 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
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
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.09.2013, 04:48     С использованием функций и указателей отсортировать строки массива строк по убыванию #5
Цитата Сообщение от theadamo86 Посмотреть сообщение
Мне как новичку интересно что делает это строка:
Пропускает '\n', который остаётся в потоке чтения после cin >>. Если этого не сделать, то, для getline(), это будет первый символ в строке. Она обработает его как пустую строку, и код, не останавливаясь на ввод, пойдёт дальше.
Yandex
Объявления
15.09.2013, 04:48     С использованием функций и указателей отсортировать строки массива строк по убыванию
Ответ Создать тему
Опции темы

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