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

Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обращение к элементам линейного списка через элементы массива указателей http://www.cyberforum.ru/cpp-beginners/thread978509.html
Вот полная версия программы. Компилятор не выдаёт ошибок, но при выполнении, судя по всему, на строчке 278, при попытке обратится к элементу списка, выкидывает окно с "Необработанное исключение в "0x01035d16" в "lab_9.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcdcdcde1". Местом ошибки указывает строчку c "return" в xstring: size_type size() const { // return length of...
C++ Размер массива по указателю Не уверен, что всё правильно понимаю... Про "new" пишут, что оно выделяет необходимое количество памяти и возвращает указатель на начало блока. А "delete" освобождает память и возвращает операционной системе. char *p = new char; delete p; Почему тогда пишут, что нельзя определить размер массива по указателю на него? Как тогда программа знает, сколько памяти должна вернуть команда... http://www.cyberforum.ru/cpp-beginners/thread978507.html
C++ Почему не работает erase() с мультимножеством?
программа в целом работает, но мне нужно исключить все гласные буквы из текста, в этом куске не удаляются элементы множества с кодом значения гласной буквы. подскажите как удалить все гласные... for(im=sm.begin(); im!=sm.end(); ++im) //удаление из множества всех гласных { for(i = 0; i < 5; i++) {
C++ Программа компилируется, но не запускается
Есть матрица 10 на 10, из нее извлекается часть 3 на 3. Первый элемент - 6 строка, 5 столбец. Компилируется без ошибок, но после запуска выдает "Прекращена работа программы ..... Windows может провести поиск способа устранения этой ошибки в Интернете". !Убедительная просьба писать не только способ устранения ошибки, но и причину ее возникновения. Если возможно. Спасибо. Код: #include...
C++ Для введенного с клавиатуры n вычислить значение выражения http://www.cyberforum.ru/cpp-beginners/thread978490.html
Требуется написать код с использованием функций для нахождения значение выражения Р=1/1*2+1/2*3+...+1/n*(n+1), n вводится с клавиатуры. Вроде простая задача, а все равно выдаёт ошибку при компиляции: #include <iostream> #include <math.h> using namespace std; float summ (float P, float k, int n); int main () {
C++ Вставка символов "Дана строка. Если в ней попадается строчный символ - с обоих сторон от него вставить его же в верхнем регистре." Я решительно не могу понять, как все это выглядит. Вернее, ясно, что для вставки символа нужно всю строку сдвинуть на одну позицию. Но вот с реализацией проблемы, никак не могу все это вместе соединить. И да, делать просто через цикл, без классов, конкатенации и пр. Что... подробнее

Показать сообщение отдельно
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
15.10.2013, 23:19     Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами
eGGz,
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
#include<iostream>
#include<math.h>
#include <time.h>
using namespace std;
void swich (int*,int,int);
void print (int*,int);
int main()
{
    srand(time(NULL));
    const int size=10;
    int arr[size];
    for (int i=0; i<size;i++) 
        *(arr+i)=rand()%100;
    cout<<"Default array:\n";
    print(arr,size);
    int min_i,max_i,min=arr[0],max=arr[0];
    for (int i=0;i<size;i++){
        if (*(arr+i)>max) {
            max=*(arr+i);
            max_i=i;
        }
        if (*(arr+i)<min) {
            min=*(arr+i);
            min_i=i;
        }
    }
    swich(arr,min_i,max_i);
    cout<<"Switched array:\n";
    print(arr,size);
    system("pause");
    return 0;
}
 
void swich (int* arr,int x1,int x2) {
    int temp,min,max;
    x1>x2?(min=x2,max=x1):(min=x1,max=x2);
    while (++min<--max) {
        temp=*(arr+min);
        *(arr+min)=*(arr+max);
        *(arr+max)=temp;
    }
} 
void print (int* arr,int size) {
    for (int i=0;i<size;i++)
        cout<<*(arr+i)<<"  ";
    cout<<"\n";
}
 
Текущее время: 06:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru