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

В целочисленном массиве найти два таких элемента - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычисления в одномерном массиве А, состоящем из N целых элементов http://www.cyberforum.ru/cpp-beginners/thread517610.html
В одномерном массиве А, состоящем из N целых элементов, вычислить: a) номер минимального по модулю элемента; b) количество чётных элементов.
C++ Транслятор с С в Паскаль Над сделать КОнвертер.. что бы с Си кода переводил в код Паскаль. НЕмножко разобравшись понял что надо Синтаксический анализ, синтаксическое дерево. За это надо хвататься?? Если да.. как их... http://www.cyberforum.ru/cpp-beginners/thread517604.html
C++ Самые близкие точки. На числовой прямой задано n точек, найти две ближайшие.
Какой код к этой задаче?Ничего не могу сделать умного((( Антон в школе начал изучать математику. Его внимание привлекло новое для него понятие числовой прямой. Антон быстро научился вычислять...
C++ Потоки и запоминание итераторов
Жду помощи... хочу, чтобы 2 потока запоминали итераторы, чтобы потом можно было свапнуть разыменованные иттераторы...но проблема с синхронизацией. Как вызывать события? как они должны...
C++ Постройте графики функций и найдите точки их пересечения. http://www.cyberforum.ru/cpp-beginners/thread517589.html
Помогите решить на C++: Постройте графики функций и найдите точки их пересечения. y=tgx, y=1;
C++ Используя программу вычисления транспонированной матрицы S^T Помогите решить задачу на С++: Используя программу вычисления транспонированной матрицы S^T, найдите для данных матриц A, B, C размерностью 3x3 значение выражения (A+B)^T-(A+C)^T+(B+C)^T. ... подробнее

Показать сообщение отдельно
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,386
Завершенные тесты: 1
13.03.2012, 05:36
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#include <cmath>
 
/*
 *
 */
int main( int argc, char** argv ) {
    std::srand( std::time( 0 ));
 
    std::size_t size = 10, absMin = 0, absMax = 1;
    int *arrayPtr = new int[ size ];
 
    for ( std::size_t i = 0; i < size; i++ ) {
    arrayPtr[ i ] = std::rand() % 200 - 100;
    std::cout << std::setw( 3 ) << arrayPtr[ i ] << ' ';
    }
 
    std::cout << std::endl;
 
    for ( std::size_t i = 0; i < size; i++ ) {
    if ( std::abs( arrayPtr[ i ] ) < std::abs( arrayPtr[ absMin ] ))
        absMin = i;
 
    if ( std::abs( arrayPtr[ i ] ) > std::abs( arrayPtr[ absMax ] ))
        absMax = i;
    }
 
    std::cout << "\nThe maximum absolute value among the elements " << ( absMin < absMax ? absMin : absMax ) + 1 << " and " << ( absMin < absMax ? absMax : absMin ) + 1 << " = " << std::abs( arrayPtr[ absMin ] - arrayPtr[ absMax ] ) << '\n' << std::endl;
 
    {
    int *tmp = arrayPtr;
    std::size_t j = 0;
 
    arrayPtr = new int[ size - 2 ];
 
    std::cout << "Array after removing this elements: " << std::endl;
 
    for ( std::size_t i = 0; i < size; i++ )
        if ( i != absMin && i != absMax ) {
        arrayPtr[ j ] = tmp[ i ];
        std::cout << std::setw( 3 ) << arrayPtr[ j++ ] << ' ';
        }
    
    std::cout << std::endl;
 
    size -= 2;
 
    delete [] tmp;
    }
 
    std::cout << std::endl;
    
    std::system( "pause" );
 
    return 0;
}
Не ахти, но работает. Именно массив? С вектором проще намного было бы...
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru