Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 0
Регистрация: 02.12.2012
Сообщений: 17
1

Пояснения кода

02.05.2013, 18:20. Просмотров 414. Ответов 1
Метки нет (Все метки)

Вариант 5. Сформировать одномерный массив. Удалить из него K элементов, начиная с заданного номера, добавить K элементов, начиная с заданного номера.

объясните пожалуйста отмеченные мною части кода.. Буду благодарен.

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <time.h>
#include <locale>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int *mas,size,num,K,temp,numb;
    cout<<"Введите размерность массива:";
    cin>>size;
    mas=(int*)malloc(size*sizeof(int));
    srand(time(0));
    for (int i=0; i<size; i++)
    {
        mas[i]=rand()%20;
    }
    cout<<"Исходный массив:";
    for (int i=0; i<size; i++)
    {
        cout<<mas[i]<<" ";
    }
    cout<<endl;
    cout<<"Введите сколько элементов удалить:";
    cin>>K;
    cout<<"Начиная с какого номера:";
    cin>>num;
    int num1=num;
    for (int i=0; i<K; i++)                                 
    {
        for (int j=num; j<size; j++)          
        {
            temp=mas[j+1];
            mas[j+1]=mas[j];
            mas[j]=temp;
        }
    }
    cout<<endl;
    mas=(int*)realloc(mas,(size-K)*sizeof(int));
    cout<<"Массив после удаления элементов:";
    for (int i=0; i<size-K; i++)
    {
        cout<<mas[i]<<" ";
    }
    cout<<endl;
    mas=(int*)realloc(mas,(size+K)*sizeof(int));
    cout<<"С какого номера добавить элементы:";
    cin>>numb;
    for ( int i=size-K; i<size; i++)
    {
        mas[i]=mas[numb];
        numb++;
    }
    for (int i=size-1; i>num1+K; i--)
        for (int j=K-1; j>=0; j--)
            swap(mas[i-j],mas[i-j-1]);
    cout<<"Массив после добавления элементов:";
    for (int i=0; i<size; i++)
    {
        cout<<mas[i]<<" ";
    }
    cout<<endl;
    free (mas);
    getch();
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
for (int i=0; i<K; i++)                                 
    {
        for (int j=num; j<size; j++)          
        {
            temp=mas[j+1];
            mas[j+1]=mas[j];
            mas[j]=temp;
        }
    }
C++
1
mas=(int*)realloc(mas,(size+K)*sizeof(int));
C++
1
swap(mas[i-j],mas[i-j-1]);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2013, 18:20
Ответы с готовыми решениями:

Нужны небольшие пояснения по маленькому фрагменту кода, реализующего рекурсивный поиск в глубину по графу
Здравствуйте, не могу разобраться в этой функции. Ниже есть ссылка на сам алгоритм. Заранее...

Пояснения условия
Пожалуйста поясните следующую задачу. (Прошу решения не предлагать, мне нужно самому решить) ...

Нужны пояснения
Читаю &quot;С++ руководство для начинающих&quot; Герберта Шилдта. Дочитал до &quot;передача аргументов командной...

Необходимы пояснения по коду
Здравствуйте знатоки C++. Прошу не бранить меня сильно за мои вопросы. Только начал изучать C++....

1
8 / 8 / 5
Регистрация: 24.05.2012
Сообщений: 18
02.05.2013, 18:48 2
C++
1
2
3
4
5
6
7
8
9
for (int i=0; i<K; i++)
{
for (int j=num; j<size; j++)
{
temp=mas[j+1];
mas[j+1]=mas[j];
mas[j]=temp;
}
}
смешает элементы массива влево, начиная с num, делает это k раз.

было 3 4 5 6 7 8 ; k=2; num = 3; -> 3 4 7 8 5 6.

C
1
mas=(int*)realloc(mas,(size-K)*sizeof(int));
изменяет количество памяти выделенное под mas. (уменьшает размер массива на K).
C++
1
swap(mas[i-j],mas[i-j-1]);
меняет местами mas[i-j] и mas[i-j-1]
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2013, 18:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Системы счисления(пояснения)
#include &lt;stdio.h&gt; void main() { int n, a, b, c, n1; scanf(&quot;%d&quot;, &amp;n); a=0; c=0; b=1;...

Требуются пояснения по коду
Приветствую. Штурмую тут методичку, и некоторые моменты не ясны: class person { int age; ... ...

Нужны некоторые пояснения
При выполнении программы есть область 20 на 20. 1) Почему при движении вправо или влево, после...

Нужны пояснения по вложенным классам
задался вот таким вопросом, почему не получается объявить вложенный класс следующим образом?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.