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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать прототип, определение функции и пример вызова функции http://www.cyberforum.ru/cpp-beginners/thread62323.html
Народ в течении 30 минут надо, очень!!! Написать прототип, определение функции и пример вызова функции для решения указанной далее задачи. Исходные данные и результаты лучше получать как возвращаемое значение. Обработку массива вести с использованием указателей. Спланировать тестирование функции. Для ввода исходных данных, передаваемых в функцию, и печати результатов ее работы использовать...
C++ Олимпиадная задача, "ЕГЭ". С целью упрощения ЕГЭ по литературе, было решено оставить в нем вопросы только с ответами "да" или "нет". Бланк ответов представляет клетчатое поле из N строк и M столбцов, в котором каждая клеточка соответствует своему вопросу. Ученику необходимо один раз перечеркнуть по диагонали те клеточки, которые, по его мнению, соответствуют вопросам с ответом "нет" (перечеркивать можно по любой из двух... http://www.cyberforum.ru/cpp-beginners/thread62241.html
C++ Ошибка компиляции ассемблерной вставки
Добрый вечер. Захотелось мне сделать ассемблерную вставку в C++ код. Сделал. Но компилятору MinGW чето не нравится. Выдает следующие ошибки в 8 строке: error: expected `(' before '{' token error: expected asm body before '{' token Что я сделал не так ? #include <iostream> using namespace std;
C++ Как скомпилировать проект чтобы вложились нужные библиотеки!!!
Привет, народ может поможете. Как мне скомпилировать проект чтобы в папке с прогой, С++ вложил все нужные ей библиотеки, dll? (С++ Архитект 2009) ..............
C++ Игровой движок http://www.cyberforum.ru/cpp-beginners/thread61966.html
Какой движок бесплатный для комерческого использования лутше!Сейчас я разрабатываю игру можете вступить к нам у нас 3 программиста 2 модельера и 1 звукарь но я не об этом!Мне нужен двиг с хорошей графикой и эфектами (дым огонь и т.д)
C++ Масивы в с++ В общем мне потребовалось написать лабу на тему "Строки" следующего содержания : "Ввести строку из нескольких фамилий отделенных запятыми , вставить имена для каждой фамилии и вывести на экран" У меня есть одна идея, как это осуществить- путём создания еще 1 массива и поиском в введенной строке запятой ,переносом фамилии до запятой во 2 массив,далее переносом имени и т.д....Но помоему есть... подробнее

Показать сообщение отдельно
m@shka
 Аватар для m@shka
0 / 0 / 0
Регистрация: 17.10.2009
Сообщений: 12
10.11.2009, 22:41  [ТС]     Сортировка символьного массива
Поробую еще раз!!!

У нас есть какое-то слово, записанное в файле!!!
(в дан случае в файле 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 минут
А что нужно дальше!!!!!!!!!
Чтобы именно Эту полученную матрицу со сдигом отсортировать СТРОКИ в алфавитном порядке по первому столбцу, если же встречаются в этом столбце одинаковые буквы, то смотреть что идет за ними(уже во втором столбце).

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

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

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

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

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

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