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

Поменять части массива местами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Запись числа прописью, нужна доработка http://www.cyberforum.ru/cpp-beginners/thread1199624.html
Добрый день, дана задача: запись числа прописью Помогите доработать её, нужно вводить числа с клавиатуры и вывести результат в консоли Также нужно выводить копейки , пример 600.20 = шестьсот рублей...
C++ Не работает метод класса #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class Lines { private: char *line; http://www.cyberforum.ru/cpp-beginners/thread1199602.html
Написать класс с функцией поиска C++
Ребята помогите написать класс с функцией поиска, состоящий из 5 строк
C++ Контейнер std::vector
Помогите определить почему не работает задача. Оибку выбивает на строку k.push_back(0); #include <iostream> #include <math.h> #include <vector> #include <algorithm> using namespace std; ...
C++ Матрица и диагональные элементы http://www.cyberforum.ru/cpp-beginners/thread1199581.html
в заданной квадратной матрицы значения некоторых диагональных элементов равны нулю. переставить строки или столбцы матрицы таким образом, чтобы диагональные элементы стали ненулевыми. если это...
C++ Надо описать функции перегрузки в абстрактном классе Здравствуйте. Есть код и нужно сделать так, чтобы перегрузки операторов + и > были описаны в абстрактном классе. Оператор сложения: c=(a+b)/(amin+bmin), где amin и bmin - минимальные элементы в iой... подробнее

Показать сообщение отдельно
mr_shiver
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 7

Поменять части массива местами - C++

05.06.2014, 02:48. Просмотров 902. Ответов 1
Метки (Все метки)

Дан массив M, размерность задать в программе с помощью именованной константы. Указать элемент-границу (ввести номер с клавиатуры). Переставить местами правую и левую часть массива.

В функции exchange записываю значение граничного элемента в temp и сдвигаю все элементы слева от него на ячейку вправо, после записываю в arr[0] значение temp, увеличиваю номер граничного элемента на 1, после чего все должно повторяться.

Не работает. Выдает ошибку выхода за пределы массива (даже если в первом цикле for внутри функции exchange поставить i<1)



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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <clocale>
 
using namespace std;
 
 
 
void input(int *arr, int size); //заполнение массива
void output(int *arr, int size);//вывод
void exchange(int *arr, int size, int border);//меняет части местами
 
 
 
int main()
{
    srand((unsigned int)time(0));
    setlocale (LC_ALL,"Russian");
 
    const int size = 10;
    int M[size], border;
 
    cout<<"Введите номер элемента-границы:"<<endl<<endl;
    cin>>border;
    
 
    input(M, size);
 
    output(M, size);
 
    exchange(M, size, border);
 
    output(M,size);
}
 
 
void input(int *arr, int size)
{
    for(int i = 0;i <= size; i++)
    {
        arr[i]=rand()/100;
    }
}
 
void output(int *arr, int size)
{
    for(int i = 0; i <= size; ++i)
        cout<<arr[i]<<" ";
        cout<<endl<<endl;
}
 
 
void exchange(int *arr, int size, int border)
{
    int temp;
    
    for (int i=0; i<size-(border+1); i++)
    {
 
        temp=arr[border-1];
        
        for(int j=border; j<=border && j>i; j--)
            arr[j]=arr[j-1];
 
        arr[0] = temp;
 
        border++;
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru