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

Вывести на экран пары чисел с наименьшей разностью - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перезаписать все строки из исходного файла в новый заменив все символы 'м' на 'М' http://www.cyberforum.ru/cpp-beginners/thread1826035.html
Задание элементарное: перезаписать все строки из одного файла в новый заменив все "м" на "M". Я знаю что можно через пару циклов, но интересно как можно сделать тоже самое через функции библиотеки...
C++ Нюансы синтаксиса: что значит запись newPtr-> nextPtr=firstPtr ? В книге Дейтела Харви, в главе 15 при разборе связного списка встретил такое выражение " newPtr-> nextPtr=firstPtr ", не могу поеять как указатель newPtr -> (вызывает указатель)nextPtr, ведь следуя... http://www.cyberforum.ru/cpp-beginners/thread1826023.html
C++ Разобрать код программы построчно
Всем привет. наткнулся в соседней теме, которая была открыта еще в 2014 году на один код. Программа предназначена для решение задачи "Даны натуральное число n и целые числа (m1...mn) . После каждого...
C++ Обработка массивов
#include "stdafx.h" #include "C:/Users/andre/OneDrive/Документы/Visual Studio 2015/Projects/std_lib_facilities.h" int main() { setlocale(LC_ALL, "Russian"); const int num = 10;...
C++ Программа печатающая курс по номеру семестра http://www.cyberforum.ru/cpp-beginners/thread1825982.html
Составить программу, которая по номеру семестра печатает курс, к которому относится введенный семестр (1 и 2 семестр – 1 курс, 3 и 4 семестр – 2 курс и т. д.). Заранее благодарю
C++ Сократить код, переделав if #include <iostream> #include <math.h> #pragma hdrstop #pragma argsused using namespace std; int main(int argc, char* argv) { int m; подробнее

Показать сообщение отдельно
Invader0x7F
Helper C/C++
281 / 158 / 61
Регистрация: 22.09.2016
Сообщений: 518
Завершенные тесты: 5
14.10.2016, 18:00
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
#include <cmath>
#include <ctime>
#include <cstdlib>
#include <iostream> 
 
typedef struct Pair
{
    int min_i;
    int min_n;
    int diff;
} PAIR;
 
using namespace std;
 
int main()
{
    const int N = 10;
 
    std::srand((unsigned)std::time(NULL));
    
    int A[N] = { 0 }; PAIR pairs[N * N] = { { 0 } };
    for (int index = 0; index < N; index++)
    {
        A[index] = std::rand() % (N - 1) + 1;
        std::cout << A[index] << " ";
    }
 
    std::cout << endl;
 
    int min_diff = 0, min_i = -1, min_n = -1;
    for (int index = 0; index < N - 1; index++)
    {
        if ((std::abs(A[index] - A[index + 1]) < min_diff) || (min_i == -1))
        {
            min_i = index;
            min_diff = abs(A[index] - A[index + 1]);
        }
    }
 
    std::cout << A[min_i] << " " << A[min_i + 1] << endl << endl;
 
    int n = 0;
    for (int r = 0; r < 2 * N * log(N) - 1; r++)
    {
        min_n = min_i = -1; min_diff = 0;
        for (int index = 0; index < N; index++)
            for (int nindex = index + 1; nindex < N; nindex++)
            {
                if ((std::abs(A[index] - A[nindex]) < min_diff) || 
                    ((min_i == -1) && (min_n == -1)))
                {
                    bool exists = false;
                    for (int v = n - 1; v >= 0 && exists == false; v--)
                        if (pairs[v].min_i == index && pairs[v].min_n == nindex)
                            exists = true;
 
                    if (exists == false)
                    {
                        min_i = index; min_n = nindex;
                        min_diff = abs(A[index] - A[nindex]);
                    }
                }
            }
 
        if (min_i > -1 && min_n > -1)
        {
            pairs[n].min_i = min_i;
            pairs[n].min_n = min_n;
            pairs[n++].diff = std::abs(A[min_i] - A[min_n]);
        }
    }
 
    for (int z = 0; z < n; z++)
        std::cout << A[pairs[z].min_i] << " " << A[pairs[z].min_n] << " diff = " << pairs[z].diff << endl;
 
    std::cin.get();
}
1
Миниатюры
Вывести на экран пары чисел с наименьшей разностью  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.