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

Упорядочивание символьного массива указателей - C++

Восстановить пароль Регистрация
 
ElvenDragon
 Аватар для ElvenDragon
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
30.04.2010, 18:11     Упорядочивание символьного массива указателей #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
#include <iostream>
#include <windows.h>  //Для начала установите вручную шрифт Lucida Console в свойствах окна консоли.
#include <fstream>
using namespace std;
 
void up(int *s); 
char *sp(int i);
 
const int ras = 6; //Размер массива.
int uselust = 467;
int ust = 300;
int nomerus = 789;  //Значения списка 1.
int kolusl = 200;
int M = 550;
int tsena = 320;
int M1 = 890; //Те же самые значения списка 2 с другим значением поля M1.
char *e[ras]; //Однонаправленный список.
 
int main() {
  SetConsoleCP(1251); //Данные записываются в массив на русском языке. 
  SetConsoleOutputCP(1251);
  int i,a; //Счётчики.
  char ch[15], ch1[15];
  int sp[ras] = {uselust, ust, nomerus, kolusl, M, tsena }; 
  ifstream R("C:\\R4.txt"); //Создадим файл в котором будут хранится данные R4.
  for(i = 0; i < ras; i++) { //Читаем данные из файла.
    R.getline(ch, sizeof ch);
    e[i] = ch;
    for(a = 0; a < 15; a++) ch[a] = ch1[a]; //Очищаем массив.
  }
  up(sp);
  cout << e[0] << '\n' << e[1] << '\n' << e[2] << '\n' << e[3] << '\n' << e[4] << '\n' << e[5]; 
  
  return 0;
}
 
char *sp(int i) { //Возвращает поля списка.
  if(i == uselust) return e[0];
  else if(i == ust) return e[1];
  else if(i == nomerus) return e[2];
  else if(i == kolusl) return e[3];
  else if(i == M || i == M1) return e[4]; 
  else if(i == tsena) return e[5];
} 
 
void up(int *s) { //Упорядочивает однонаправленный список.
  int a,b; //Счётчики.
  char *d,*t,*v; //Хранят поля.
  for(a = 0; a < ras - 1; a++)
    for(b = ras - 1; b > a; b--) {
      if(s[b] < s[b-1]) {
        d = sp(s[b]); 
        t = sp(s[b]);
        v = sp(s[b-1]);
        t = v; //Присваиваем меньшему полю большое поле по значению.
        v = d; //Присваиваем большому полю меньшое поле по значению.
      }
    }
}
Проблема в том что не выводится упорядоченный список а какийто буквы M
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2010, 18:11     Упорядочивание символьного массива указателей
Посмотрите здесь:

C++ Сортировка символьного массива
Упорядочивание массива C++
C++ Упорядочивание массива
Заполнение массива значениями из символьного массива C++
С++ упорядочивание массива C++
C++ Обработка символьного массива
C++ Сортировка символьного массива
C++ Упорядочивание массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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