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

Ребят доработайте код программы (программа сортировки чисел методом Шелла) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая по координатам камушков на поле находит вариант размещения их на двух несовпадающих окружностях http://www.cyberforum.ru/cpp-beginners/thread767635.html
Долго решал, в какой же раздел форума написать, поэтому если не туда попал - прошу прощения :) Итак, сидит друг на экзамене, попросил подсобить с решением задачи: "Юный футболист Митя обнаружил на...
C++ Подправить код #include "stdafx.h" #include <iostream> using namespace std; const int n=10; float X; double sum(); int _tmain(int argc, _TCHAR* argv) { int i; cout<<"Massiv X"<<endl; http://www.cyberforum.ru/cpp-beginners/thread767611.html
C++ Нахождения максимального из двух чисел
2 С помощью механизма перегрузки функций реализовать функции для нахождения максималь-ного из: 1) 2-х чисел; 2) длин 2-х строк; 3) длины строки и числа; 4) числа и длины строки.
Исправить ошибку (умножение двух матриц) C++
#include <iostream> #include <windows.h> using namespace std; void main() { SetConsoleOutputCP(1251); const int s = 2; int a1, a2, a3 = {0}; cout << "Запоните первый мaссив:\n"; for(int i =...
C++ Некоректное выполнение программы по присваиванию char масивов http://www.cyberforum.ru/cpp-beginners/thread767590.html
Привет знатокам я написал не большой код в котором одномерный масив char присваевается к двумерному char. Вопрос вот в чем. если закоментить эту строку //char symbolArray2 = {''}; получаетя...
C++ Задачи из книги Прата (представить значения с помощью символических констант) Только начал изучать книгу Прата "Язык программирования С++",столкнулся с такой задачей: Напишите программу, которая запрашивает широту в градусах, минутах и секундах, после чего отображает... подробнее

Показать сообщение отдельно
dalay_lama
77 / 77 / 16
Регистрация: 22.09.2012
Сообщений: 481
21.01.2013, 17:18
Вот, как то так. Только я не знаю как в массив в одной строке вводить. Так что извеняй
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
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <fstream>
using namespace std;
 
int main()
{
    ofstream outFile;
    int flag;
    // razmer massiva,
    // kotoriy neobhodimo sortirovat
    int size;
    
    cout <<"1: user, 2: random\nentered: ";
    cin >>flag;
    if (flag == 2)
    {
        srand(time(NULL));
        size = rand()%11;
    }
    else if (flag == 1)
    {
        cout <<"Enter a number: ";
        while(!(cin >>size))
        {
            cin.clear();cin.get();
            cout <<"Please a number: ";
        }
    }
    cout <<"\nRazmer matrici = " <<size <<"\n\n";
    // dinam vid pamat
    // hranenie massiva razmera size
    int *a = new int[size];    
    // schitivaem massiv
    for (int i = 0; i < size; i++)
    {
        cout <<'[' <<i <<']' <<" = ";
        cin >> a[i];
    }
    int step = size / 2;//inicial shag.
    while (step > 0)//poka shag ne 0
    {
      for (int i = 0; i < (size - step); i++)
                {
                    int j = i;
                    //budem idti nachinaya s  i-go elementa
                    while (j >= 0 && a[j] > a[j + step])
                    //poka ne prishli k nachalu massiva
                    //i poka rassmatr element bolshe
                    //chem element nahod na rasstoyanii shaga
                    {
                        //menaem ih mestami
                        int temp = a[j];
                        a[j] = a[j + step];
                        a[j + step] = temp;
                        j--; 
                    }
                }
                step = step / 2;//umenshaem shag
            }    
            cout <<endl;
    // vivodim massiv
    
    cout <<"1: for screen, 2: for screen and txt file\nenter: ";
    cin >>flag;
    if (flag == 1)
        for (int i = 0; i < size; i++)
            cout << a[i] << ' ';
    else if (flag == 2)
    {
        outFile.open("output.txt");
        for (int i = 0; i < size; i++)
        {
            cout << a[i] << ' ';
            outFile <<a[i] <<' ';
        }
        outFile.close();
    }
        
    return 0;
}
Добавлено через 1 час 41 минуту
Поправка
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
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <fstream>
using namespace std;
 
int main()
{
    ofstream outFile;
    int flag;
    // razmer massiva,
    // kotoriy neobhodimo sortirovat
    int size;
    
    cout <<"1: user, 2: random\nenter: ";
    while(!(cin >>flag))
        {
            cin.clear();
            while (cin.get() != '\n')
                continue;
            cout <<"Please a number of 1 for user or 2 for random: ";
        }
    if (flag == 2)
    {
        srand(time(NULL));
        size = rand()%11;
    }
    else if (flag == 1)
    {
        cout <<"\nenter number: ";
        cin >>size;
    }
    cout <<"\nRazmer matrici = " <<size <<"\n\n";
    // dinam vid pamat
    // hranenie massiva razmera size
    int *a = new int[size];    
    // schitivaem massiv
    for (int i = 0; i < size; i++)
    {
        cout <<'[' <<i <<']' <<" = ";
        cin >> a[i];
    }
    int step = size / 2;//inicial shag.
    while (step > 0)//poka shag ne 0
    {
      for (int i = 0; i < (size - step); i++)
                {
                    int j = i;
                    //budem idti nachinaya s  i-go elementa
                    while (j >= 0 && a[j] > a[j + step])
                    //poka ne prishli k nachalu massiva
                    //i poka rassmatr element bolshe
                    //chem element nahod na rasstoyanii shaga
                    {
                        //menaem ih mestami
                        int temp = a[j];
                        a[j] = a[j + step];
                        a[j + step] = temp;
                        j--; 
                    }
                }
                step = step / 2;//umenshaem shag
            }    
            cout <<endl;
    // vivodim massiv
    
    cout <<"1: for screen, 2: for screen and txt file\nenter: ";
    cin >>flag;
    if (flag == 1)
    {
        for (int i = 0; i < size; i++)
            cout << a[i] << ' ';
        cout <<endl;
    }
    else if (flag == 2)
    {
        outFile.open("output.txt");
        for (int i = 0; i < size; i++)
        {
            cout << a[i] << ' ';
            outFile <<a[i] <<' ';
        }
        outFile.close();
        cout <<endl;
    }
        
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru