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

Зеркальное переворачивание массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как вернуться к началу функции? http://www.cyberforum.ru/cpp-beginners/thread756856.html
сем доброго времени суток. Подскажите, как сделать так, чтобы при одном из условий функция начиналась с начала. Break прерывает и идет дальше, а как вернуться к началу? Заранее спасибо
C++ Клиент класса скажите пожалуйста что это такое? и пример если можно http://www.cyberforum.ru/cpp-beginners/thread756847.html
Возврат значения C++
Помогите решить проблему. Есть программа. В texbox выводятся значения (счет кол-ва шагов двигателя), эти значения при каждом нажатии плюсуются. Нужна вторая кнопка, которая при нажатии выключит таймер и вернет значение textbox'а на начальное.
C++ энтропия файла
Народ помогите пожайлуста нужна ваша помощь у меня такое задача: Напишите программу для подсчета частоты появления символов в файл и сохранить их в массиве. А потом рассчитывать энтропию. Заранее спасибо.
C++ Заполнить массив двенадцатью первыми членами последовательности Фибоначчи http://www.cyberforum.ru/cpp-beginners/thread756821.html
Заполнить массив двенадцатью первыми членами последовательности Фибоначчи (последовательность, в которой первые два члена равны 1, а каждый следующий равен сумме двух предыдущих). Вывести массив на экран
C++ Разработать класс, набор методов для программной модели заданного объекта Розробити клас, набір методів (конструктор, деструктор і вказані методи) для програмної моделі заданого об'єкту. Опис об'єкту і його основних властивостей приводиться нижче. Привести програму(int main), що використовує об'єкти розробленого класу: Об'єкт «комплексні числа». Операції визначаються по загальноприйнятим формулам. Конструктор повинен дозволити створювати об'єкти без та з початковою... подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт CЭксперт С++
12693 / 7167 / 799
Регистрация: 27.09.2012
Сообщений: 17,665
Записей в блоге: 2
Завершенные тесты: 1
09.01.2013, 18:03     Зеркальное переворачивание массива
Цитата Сообщение от Fareiro Посмотреть сообщение
только 1 раз, или я ошибаюсь?
5,7,8,5,9;
5 минимальное число, встречается два раза.

Добавлено через 1 минуту
Цитата Сообщение от LifeWind Посмотреть сообщение
Зеркально перевернуть часть элементов массива, расположенных между первым из всех наименьших и последним из всех наибольших элементов массива.
Что именно имеется ввиду под зеркальным переворотом?
Если просто в обратном порядке перечислить, то можно так:
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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
void cout_arr(int * _arr,size_t _size){
    for(int *arrend=_arr+_size;_arr<arrend;++_arr)
        std::cout<<*_arr<<' ';
    std::cout<<std::endl;
}
 
void fill_arr(int * arr,size_t size){
    srand(time(NULL));
    for(int *arrend=arr+size;arr<arrend;++arr)
        *arr=rand()%100;
}
 
void reverse_arr(int *arr, size_t size){
    int *arrend=arr+size-1;
    int temp;
    while(arr<arrend){
        temp=*arr;
        *arr=*arrend;
        *arrend=temp;
        --arrend; ++arr;
    }
}
 
 
int GetFirstMinIndex(int * arr, int size){
    int index=size-1;
    for(int i=size-2;i>=0;--i)
        if(arr[i]<arr[index])
            index=i;
    return index;
}
int GetLastMaxIndex(int * arr, int size){
    int index=0;
    for(int i=0;i<size;++i)
        if(arr[i]>arr[index])
            index=i;
    return index;
}
 
int main(){
    const int size=10;
    int arr[size];
    fill_arr(arr,size);
    cout_arr(arr,size);
 
 
    int imin=GetFirstMinIndex(arr,size);
    int imax=GetLastMaxIndex(arr,size);
    int beg,end;
    if(imin>imax){
        beg=imax;
        end=imin;
    }else{
        beg=imin;
        end=imax;
    }
    reverse_arr(arr+beg+1,end-beg-1);
 
    cout_arr(arr,size);
    return 0;
}
Название: Безымянный.jpg
Просмотров: 105

Размер: 12.1 Кб
 
Текущее время: 16:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru