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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
m@shka
0 / 0 / 0
Регистрация: 17.10.2009
Сообщений: 12
#1

Сортировка символьного массива - C++

09.11.2009, 15:02. Просмотров 1662. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста написать прогу на C++!!!
Нужно отортировать матрицу из симовлов по первому столбцу, в случае если есть повторяющиеся символы, то сравивать следующие элементы строки(т.е. следующего столбца тех же строк)

Например, матрица из слово танк со смещением, это я уже запрограмировала

т а н к
а н к т
н к т а
к т а н Должно получится

а н к т
к т а н
н к т а
т а н к

А если в 1-ом столбце будут повторяющиееся
например...

а р т л
а б т л
ш л т о
и р о т

ТО

а б т л
а р т л
и р о т
ш л т о
Надеюсь нормально объяснила!!!

ПОмоите пожалуйста!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2009, 15:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка символьного массива (C++):

Сортировка символьного массива - C++
Данная программа, по идее, должна сортировать символьный массив пузырьком. Но почему-то не сортирует. #include <iostream> #include...

сортировка одномерного символьного массива из файла - C++
//Пузырьковая сортировка по убыванию (прямое направление) вот прога. считывает и выводит на экран буквы из файла "in.txt" но...

Сортировка символьного массива в порядке убывания количества букв - C++
Мне нужно сначала: 1 - спросить у человека строку 2 - надо посчитать количество вхождений каждой буквы ( то есть если в строке...

Заполнение массива значениями из символьного массива - C++
есть массив символов char z;есть целочисленный массив int b;каждый символ z это цифра 0-9 нужно в b записать символ z(не код символа а...

Размер символьного массива - C++
Всех приветствую! Прошу простить, что тревожу столь банальными вопросами, но сам додумать не могу... Задан массив: char *a =...

Инициализация символьного массива - C++
Не получается инициализировать в программе символьный массив #include <iostream> using namespace std; struct names{ char...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
09.11.2009, 16:59 #2
Цитата Сообщение от m@shka Посмотреть сообщение
Надеюсь нормально объяснила!!!
Если честно, то нет. Попробуйте еще раз.
0
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
10.11.2009, 16:39 #3
да и покажи то что ты уже сделала, что-бы самому меньше писать..
0
m@shka
0 / 0 / 0
Регистрация: 17.10.2009
Сообщений: 12
10.11.2009, 22:41  [ТС] #4
Поробую еще раз!!!

У нас есть какое-то слово, записанное в файле!!!
(в дан случае в файле ma.txt)

Приведенный код программы осуществляет чтение этого слова из файла, затем создает матрицу со сдвигом данного слова влево.

например слово привет
Матрица получится:

п р и в е т
р и в е т п
и в е т п р
в е т п р и
е т п р и в
т п р и в е

Это реализовано в данном коде:

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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>
#include <string.h>
#include <windows.h>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
 
    FILE *fp;
    char d;
    int k=0;
    
    char W1[10][10];
    char *Xk=new char[];
    
    fp=fopen("ma.txt","r");
    while((d = fgetc(fp))!= EOF)
    {
        Xk[k]=d;
        cout<<d;
        k++;
    }
    fclose(fp);
 
    for (int i=0; i<k; i++)
{               
    W1[0][i]=Xk[i]; 
}
 
    int index=1;
    while (index<k)
{
    int par= -1;  
    int check=index - 1;
 
for (int j=0;j<k;j++) 
 { 
    check++;
   if (check<=k-1) 
    {
        W1[index][j]=Xk[check];
    }
    if (check>k-1)
    {  
       par++;
      W1[index][j]=Xk[par]; 
    }
  }
index++;
}
//вывод заполненного массива
//w1[][]
cout<<endl<<endl;
for (int i=0;i<k;i++)
{
 for (int j=0;j<k;j++)
 {
  cout<<W1[i][j]<<" "; 
 } 
  cout<<endl;
}
 
    return 0;
}
Добавлено через 11 минут
А что нужно дальше!!!!!!!!!
Чтобы именно Эту полученную матрицу со сдигом отсортировать СТРОКИ в алфавитном порядке по первому столбцу, если же встречаются в этом столбце одинаковые буквы, то смотреть что идет за ними(уже во втором столбце).

То есть если разобраться нужно по алфавиту расположить слова, которые расположеы в строках матрицы.

Например, если у нас слово каша
Построим матрицу со сдигом этого слова влево(программно реализовано... см. выше):

к а ш а
а ш а к
ш а к а
а к а ш

Нужно отсорироватьслова каша, ашак, шака и акаш.
Пернвыми будут слова на букву А .
Но их два: ашак и акаш, т.к. вторые буквы Ш и К, то первым должно стоять слово АКАШ, потому что К в алфавите раньше Ш.
Должна получится вот такая отсортированная матрица:

а к а ш
а ш а к
к а ш а
ш а к а

Надеюсь теперь понятней!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2009, 22:41
Привет! Вот еще темы с ответами:

Перебор символьного массива - C++
Помогите, не могу написать прграмму которая добавляет символ. Например: вводим D:\myfolder\secondfolder\ , а выводим...

Вывод символьного массива - C++
Не выводит все что дальше пробела ( Как пофиксить? И чем это обусловлено ? char text=&quot; &quot;; cout&lt;&lt;&quot;enter text:&quot;; cin&gt;&gt;text; int...

Удалить * из символьного массива - C++
Надо проверить текст из Edit1 и удалить из него * void __fastcall TForm1::Button1Click(TObject *Sender) { int i; char...

Обработка символьного массива - C++
Итак, задание: Без использования конструкции string написать программу ввода и вывода необходимого текста с клавиатуры. Ввод...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.11.2009, 22:41
Ответ Создать тему
Опции темы

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