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

Отсортировать массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ фаил в функцию http://www.cyberforum.ru/cpp-beginners/thread185813.html
Пишу прогу нужно передать фаил в функцию для обработфи но возникла такая проблема: вот функция : void add(ifstream &fin,LIST *head) { ......................... } я ее в мейне...
C++ как сделать свою кнопку для курсового проекта мне нужно внедрить браузер в форму и сделать пару кнопок(типа вперед,назад) чтобы все работало,это я сделал с помощью обычных BUTTON,но форма их меня не устраивает,хочу сделать... http://www.cyberforum.ru/cpp-beginners/thread185792.html
C++ Циклы. Найди значение функтии.
Такая штука. Нужно написать программу используя for, while, do...while, goto. Пытаюсь понять что как работает, но не очень получается. Напишите пож. программу хоть 1 из этих 4-х. Задание вложил. Язык...
C++ Матрица, Произведение элементов в тех строках,который не содержат отрицательных элементов
ребята помогите пожалуйста!! Матрица заполняется рандомно от5 до -5 Дана целочисленная квадратная матрица. Определить: Произведение элементов в тех строках,который не содержат отрицательных...
C++ перевод из паксаля в с++ http://www.cyberforum.ru/cpp-beginners/thread185773.html
люди помогите пожалуйста! сдача скоро. uses crt; var n,x1,y1,x2,y2,k:integer; begin clrscr; writeln('Наименьшее число, представимое двумя различными способами'); writeln(' в виде суммы...
C++ fprintf fprintf Вопрос - данная ф-ция перезаписывает весь файл? То есть сначала очищает, а после записывает или же добавляет запись к концу? подробнее

Показать сообщение отдельно
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767

Отсортировать массив - C++

03.11.2010, 18:57. Просмотров 804. Ответов 10
Метки (Все метки)

Задан символьный массив размера N. Отсортировать массив так, что бы
сначала в нем в алфавитном порядке шли согласные буквы латинского
алфавита, а затем остальные элементы, порядок которых не меняется.
Пример: a d f e w h g u t b l o → b d f g h l t w a e u o

по-моему у меня где-то в проге происходит зацикливание
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
91
92
93
94
95
96
97
98
99
100
101
102
#include <iostream>
#include <stdlib.h>
 
#define swap(a,b) {char tmp;tmp=a;a=b;b=tmp;} 
 
bool check_1(char z) //ïðîâåðêГ* Г*Г* ГЈГ«Г*Г±Г*îñòü 
{
    char *x=(char*)calloc(6,sizeof(char));
    
    x[0]='a';
    x[1]='e';
    x[2]='i';
    x[3]='o';
    x[4]='u';
    x[5]='y';
    
    //ïîèñê ýëåìåГ*ГІГ* z Гў Г¬Г*Г±Г±ГЁГўГҐ x
    bool k=false;
    int i=0;
    do
    {
     if (x[i]==z)
      k=true;
      else
      i++;
    }
    while (i>6||k==true);
        
    free(x);
}
 
bool check_2(char z1) //ïðîâåðêГ* Г*Г* ÷èñëî
{
    char *y=(char*)calloc(10,sizeof(char));
 
    y[0]='0';
    y[1]='1';
    y[2]='2';
    y[3]='3';
    y[4]='4';
    y[5]='5';
    y[6]='6';
    y[7]='7';
    y[8]='8';
    y[9]='9';
    
    //ïîèñê ýëåìåГ*ГІГ* z1 Гў Г¬Г*Г±Г±ГЁГўГҐ y
    bool k=false;
    int i=0;
    do
    {
     if (y[i]==z1)
      k=true;
      else
      i++;
    }
    while (i>10||k==true);
    
    free(y);
}
 
 
int main()
{
    
    int n;
    cout<<"Insert number of symbols"<<endl;
    cin>>n;
    
    //ñîçäГ*Г*ГЁГҐ Г¬Г*Г±Г±ГЁГўГ* ñèìâîëîâ
    char *s=(char*)calloc(n,sizeof(char));
    cout<<"Insert symbols"<<endl;
    for(int i=0;i<n;i++)
    cin>>s[i];
    
    //ïåðâîГ*Г*Г·Г*ëüГ*ûé Г¬Г*Г±Г±ГЁГў
    for(int i=0;i<n;i++)
    cout<<s[i]<<" ";
    
    cout<<endl;
    
    for(int i=0;i<n-1;i++)
    if ((check_1(s[i]))||(check_2(s[i]))&&(!check_1(s[i+1]))&&(!check_2(s[i+1])))
      swap(s[i],s[i+1]);
      
    //êîë-ГўГ® ГЎГіГЄГў ñîãëГ*Г±Г*ûõ
    int k1=0;
    for(int i=0;i<n;i++)
    if ((!check_1(s[i]))&&(!check_2(s[i])))
    k1++;
 
      
    //ïåðåñòГ*Г*îâêГ* ГЇГ® Г*ëôГ*ГўГЁГІГі
    for(int i=0;i<=k1-1;i++)
    if (s[i]>s[i+1]) swap(s[i],s[i+1]);
    
    //âûâîä Г*îâîãî Г¬Г*Г±Г±ГЁГўГ*
    for(int i=0;i<n;i++)
    cout<<s[i]<<" ";
     
    free(s);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru