Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 29

Сортировка и еще

05.11.2009, 23:23. Показов 2881. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Отсортировать по убыванию, возрастанию, найти максимальный и минимальный элементы. В конце вывести среднее арифметическое элементов массива.
И вот что уже имею:
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
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <vector.h>
#include <ctype.h>
 
int proverka (char ch);
int vichislenie (int p);
int preobrazovanie (char ch);
int sum (char mas[10], int size);
 
void main (void) {
        char *c1 = "Welcome to the 123s, I 548s, we nada peredet 17s that his balance is 100";
        int i, j, c, h = 0, lengh = strlen(c1);
        int index[300];
        char mas[300];
        int answer[300];
        for ( i = 0; i < lengh; i++ ) {
                if ( proverka(c1[i]) == false )
                        continue;
                else {
                        j = 0;
                        while ( proverka(c1[i]) == true ) {
                                index[j] = i;
                                j++;
                                i++;
                        }
                        for ( c = 0; c < j; c++ )
                                mas[c] = c1[index[c]];
                        answer[h] = sum(mas,j);
                        h++;
                }
        }
        for ( i = 0; i < h; i++ )
             cout << answer[i] << endl;
 
system("PAUSE");
 
}
int proverka (char ch) {
        char mas[10] = {"1234567890"};
        int i;
        for ( i = 0; i < 10; i++ )
                if ( ch == mas[i] )
                   return true;
        return false;
}
 
int vichislenie (int p) {
        int i, j = 1;
        for ( i = 0; i < p; i++ )
                j *= 10;
        return j;
}
 
int preobrazovanie (char ch) {
        char mas[10] = {"0123456789"};
        for ( int i = 0; i < 10; i++ )
                if ( ch == mas[i] )
                        return i;
}
 
 
int sum (char mas[10], int size) {
        int sum = 0, i;
        for ( i = 0; i < size; i++ )
                sum += preobrazovanie(mas[i]) * vichislenie(size-i-1);
        return sum;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.11.2009, 23:23
Ответы с готовыми решениями:

И ещё одна сортировка :)
День добрый, форумчане. Работаю со списком (помнится, просил в своё время даже совета по работе с головой - тема наверняка ещё...

Сортировка по алфавиту и еще несколько вопросов по С++
Срочно нужна помощь. 1) Нужно отсортировать по алфавиту массив из n элементов класса string. 2) Как вывести число с определенным...

Какими ещё способами можно ещё сделать?
Задание: Известно, что: 1 в третей степени будет=1 2 в третей степени будет=3+5 3 в третей степени будет=7+9+11 4 в третей...

22
0 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 29
07.11.2009, 00:36  [ТС]
Студворк — интернет-сервис помощи студентам
я не говорил что его не люблю) Просто хотел сегодня увидеть полный код, а на выходных его разобрать, что б понять.
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
07.11.2009, 01:07
Вот
код
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
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
#define FOR(x,y,z) for (int (x) = (y); (x) < (z); ++(x))
#define ALL(a) (a).begin(), (a).end()
 
int main()
{
    vector<int> a;          // твой исходный масив
    vector<int> b, c;
    int j = 10; double s = 0;       //размер масива и среднее значения
 
    FOR(i, 0, j)
        a.push_back(rand()/1000);   //делим на 1000, что-бы наглядно было
 
    FOR(i, 0, j)
        cout << a[i] << " ";
    cout << endl;
 
    FOR(i, 0, j){
        b.push_back(a[i]);
        c.push_back(a[i]);
    }
 
    sort(ALL(b));       //прямая сортировка (по-возростанию)
 
    FOR(i, 0, j)
        cout << b[i] << " ";    
    cout << endl;
 
    sort(ALL(c));       //обратная сортирока (задаем дополнительно c.reserve())
    reverse(ALL(c));
 
    FOR(i, 0, j)
        cout << c[i] << " ";        
    cout << endl;   
 
    FOR(i, 0, j)
        s += a[i];
    s /= j;
    printf("%.4f",s);
 
    return 0;
}
оптимизуруй его по максимуму..
вот еще ссылка на него и результат работы: http://codepad.org/UKBVCLMP
поставь себе в закладки следующую ссылку: http://msdn.microsoft.com/en-u... 85954.aspx - я юзал отсюда вектора, почитай что они значут, поэксперементируй с ними, они тебя еще не раз выручат..
ты касательно #define все понял? очень хороший прием, уменьзает затраты времени на кодинг..
0
8 / 8 / 5
Регистрация: 30.05.2009
Сообщений: 47
07.11.2009, 01:47
еще вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <algorithm>
#include <numeric>
 
 
class User_s
{
public:
    enum Sort { normal, reverse };
    User_s( Sort s = normal ): s_( s ) {}
    template<typename _Ty>
    bool operator () ( const _Ty& v_1, const _Ty& v_2 ) const { return s_ == normal ? (v_1 < v_2) : (v_1 > v_2); }
private:
    Sort s_;
};
 
int _tmain( int argc, _TCHAR* argv[] )
{
    int coll_arr[] = { 1, 20, 8, 35, 49, 54, 69, 0, 7, -5, -3 };
    const size_t size = sizeof(coll_arr)/sizeof(int);
    std::sort( coll_arr, coll_arr + size, User_s( User_s::reverse ) );
    std::sort( coll_arr, coll_arr + size, User_s() );
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.11.2009, 01:47

Сортировка выбором, сортировка вставкой, сортировка заменой, сортировка обменом ("пузырьковая" сортировка)
Создать класс, содержащий массив и реализующий алгоритмы сортировки и бинарного поиска в этом массиве. Класс описать с помощью...

Блок схема.Сортировка «Пузырьком», Сортировка методом «Последовательных перестановок», Сортировка «Вставками»
Помогите, нужны блок схемы Сортировка «Вставками» Program Vstavka; uses dos; Type mass=array of integer; Var i,b,n,j,a:...

Разработать программу сортировки: сортировка перестановкой, сортировка вставкой, быстрая сортировка
Задание: Разработать программу сортировки: - сортировка перестановкой - сортировка вставкой - быстрая сортировка

1)Бинарный поиск 2)Сортировка включением 3)Шейкерная сортировка 4)Сортировка разделением
1)В заданном массиве К(N) найти индексы элементов, которые кратны минимальному значению элемента массива. 2)Задан массив AX (N). Добавить...

Как из input сделать <div>показать еще</div> или <a>показать еще</a>?
Таким скриптом я подгружаю данные. &lt;script&gt; $(document).ready(function(){ $('#show_more').click(function(){ ...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru