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

в отсортированный массив, вставить случайное число, чтобы он оставался отсортированным - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ СТРУКТУРА http://www.cyberforum.ru/cpp-beginners/thread307089.html
Описать структуру с именем NOTE, содержащую поля:  фамилия и имя;  номер телефона;  дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия:  ввод с клавиатуры данных в массив, состоящий из 6 структур типа NOTE;  вывод на экран информации о человеке, номер телефона которого введен с клавиатуры;  если таких людей нет, вывести соответствующее сообщение.
C++ Матрица и вектор Создать двумерный динамический массив и выполнить: Даны матрица A размером m*n и вектор В размером m. Записать на главную диагональ элементы вектора, а в вектор - элементы главной диагонали. Наррод!!! Помогите плиз, никак эту лабу сдать не могу:( Добавлено через 3 минуты Хотя бы алгоритм подскажите, пожалуйста!!!)) http://www.cyberforum.ru/cpp-beginners/thread307076.html
C++ Даны натуральные числа k,n действительные числа a1,...,akn. Получить: max(a1+...+ak,ak+1+...+a2k,ak(n-1)+1+...+akn);
Всем здрастье! Может кто пояснить как это делается: Даны натуральные числа k,n действительные числа a1,...,akn. Получить: max(a1+...+ak,ak+1+...+a2k,ak(n-1)+1+...+akn); Добавлено через 19 минут Или может кто хотя-бы разяснить? Я понял это задание по своему: Например, мы имеем числа а1,...,а25. Значит надо найти максимум среди ( а1+а2,а3+а4,а9+а10) Так? Подскажите пожалуйста.
C++ Переводите программу с++ на паскаль
Мой мирФотоВидеоБлог владислав Каныгин Ученик (116) Открыт: только что, будет выставлен на голосование через 4 дня Переводите программу с++ на паскаль зарнее спасибо. Построить систему классов для описания плоских геометрических фигур: круг, квадрат, прямоугольник. Предусмотреть методы для создания объектов, перемещения на плоскости, изменения размеров и вращения на заданный угол....
C++ подскажите http://www.cyberforum.ru/cpp-beginners/thread307065.html
код не доделан, вообщем есть функция void replace_if(queue<MyClass>& t,MyClass e,map<MyClass>& tt) так выдает ошибку что очередь- неизвестный символ, в чем соль ??? подскажите //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h>
C++ Поиск данных в текстовом файле Подскажите как можно через массив вывести информацию находящуюся в текстовом файле. ну например у меня есть в файле Имя Фамилия и т.д. и когда я ввожу имя то мне должно выводить Имя Фамилию и все остальное. Если есть у кого такие примеры, подскажите, буду очень благодарен!!!!!!!!! подробнее

Показать сообщение отдельно
Feytan
1 / 1 / 0
Регистрация: 09.12.2010
Сообщений: 93

в отсортированный массив, вставить случайное число, чтобы он оставался отсортированным - C++

28.05.2011, 19:21. Просмотров 1117. Ответов 4
Метки (Все метки)

Помогите пожалуйста! Как мне сделать задачу на C++ в win32. В Dos я ее сделал, а вот как сделать ее не в Dos я не знаю.
Вот сама задача:
Дан одномерный массив длиной N. Массив заполняется датчиком случайных чисел (лучше использовать любое распределение, кроме нормального).
Требуется:
1) отсортировать массив со случайными числами;
2) в отсортированный массив, вставить случайное число, чтобы он оставался отсортированным;
3) также на экране после выполнения программы должно появляться сообщение, о том, сколько сравнений элементов сделано программой;
4) также программа должна выдавать сколько времени потребовалось ПК на выполнение программы.

Вот код, но он только под Dos:
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
#include <iostream>
#include<time.h>
#include<windows.h>
 
using namespace std;
 
int main ()
{
        DWORD t1, t2, d_time;
        
        srand (time(NULL));
        
        int i, N, j, k;
        
        //Задаем количество элементов
        N=30;
        cout<<endl<<"Dlina massiva - N: "<<N<<endl; //N - длина одномерного массива
        
        cout<<"\n"; 
        
        t1 = GetTickCount();
        
    if(N > 0)
    {
 
        //Резервируем место на диске под количество элементов
        
        int *a = new int[N+1];// резервируем память под массив на 1 элемент больше
 
         cout << "Vremennii massiv: " << endl;
         for(i=0; i<N; i++)
        {
                a[i]=rand()%100;
                cout<<a[i]<<" ";
        }            
        cout<<"\n";
        cout<< endl;
              
        int count=0;
        for (i = 0; i < N - 1; i++)
                {
                        for(j = N-1; j>i; j--)
                        if (a[j-1] > a[j])
                        {
                                swap(a[j], a[j-1]); count++;
                        }           
        }
        cout << "Otsortirovannii massiv: " << endl;        
        for (i = 0; i < N; i++)
                cout << a[i] << " ";
                cout<< endl;
                
        cout<<"\nKolichestvo sravnenii: "<<count;   
        cout<< endl;
        
        k=rand()%100;
        cout<< endl << "Sluchainoe chislo - k: " << k <<endl; //k - случайное число
        cout<< endl;
 
                i=0;
                while ((a[i]<k) && (i<N)) //ищем место, куда поставить случайное число
                        i++;
                for (j=N; j>i; j--) //сдвигаем все элементы массива на 1 в конец, чтобы вставить случайный элемент
                        a[j]=a[j-1];
 
                a[i]=k; //вставляем на найденное место случайный элемент
 
                cout << "Konechnii massiv: " << endl;        
        for (i = 0; i < N+1; i++)
                cout << a[i] << " ";
                cout <<"\n";
                
        delete [] a;
        }
        
        else cout<<"Chislo elementov ne mozhet byt <=0" << endl;
 
                 t2 = GetTickCount();
                d_time = t2 - t1;
                        
                cout<<"\nVremia raboti: "<<d_time<<" milisek\n";
 
    system("pause");
    
        return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru