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

Заменить все элементы, меньшие заданного числа, этим числом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить количество элементов, имеющих четные значения http://www.cyberforum.ru/cpp-beginners/thread1150621.html
Помогите решить бесталковому студенту, только начинаю разбираться в c+, не получается, желательно с пояснениями, буду признателен. 1)В массиве А из N элементов(N не больше 30) определить...
C++ Вывести книги только классического жанра. Отсоритировав их по фамилии автора Дан массив содержащий сведения о книгах: название жанр автор. Вывести книги только классического жанра. отсоритировав их по фамилии автора. Найти колличество таких книг,. на сколько их больше или... http://www.cyberforum.ru/cpp-beginners/thread1150620.html
C++ Найти минимальное значение из четырех чисел
Разработать метод min(a,b) для нахождения минимального из двух чисел. Вычислить с помощью него минимальное значение из четырех чисел x, y, z, v.
C++ Дан порядковый номер месяца, вывести на экран количество месяцев оставшихся до конца года
При решении данных задач возможно использовать оператор switch или вложенные операторы if. Дан порядковый номер месяца, вывести на экран количество месяцев оставшихся до конца года.
C++ Определить, является ли заданное целое число четным http://www.cyberforum.ru/cpp-beginners/thread1150610.html
Написать программу, которая определяет: является ли заданное целое число четным;
C++ Найти площадь равностороннего треугольника, зная его периметр Написать программу, которая подсчитывает: площадь равностороннего треугольника, периметр которого равен p; подробнее

Показать сообщение отдельно
some_name
Вежливость-главное оружие
226 / 224 / 55
Регистрация: 19.02.2013
Сообщений: 1,441
19.04.2014, 03:40
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include "stdafx.h"
#include <iostream>
 
using  namespace std;
 
void firstWay(int data[], int length, int number);
void secondWay(int data[], int length, int number);
void printArray(int data[], int length);
int *copyArray(int data[], int length);
 
int main(void)
{
    int count;
    std::cout<<"Enter size of array : "; 
    std::cin >> count;
 
    int *data = new int[count];
    for(int i = 0; i < count; ++i){
        data[i] = 10 - rand() % 20;
    }
    printArray(data, count);
 
    int number;
    std::cout<<"Enter number : "; 
    std::cin>>number;   
 
    firstWay(data, count, number);
    secondWay(data, count, number); 
 
    delete[] data;
 
    system("pause");
    return 0;
}
 
void firstWay(int originalData[], int length, int number){
 
    int *data = copyArray(originalData, length);
    //replace items
    for (int i = 0; i < length; ++i){
        if(data[i] < number){
            data[i] = number;
        }
    }
    ///////////////////////////////////////////////delete[] data;
    //print
    printArray(data, length);
}
 
void secondWay(int originalData[], int length, int number){
 
    int *data = copyArray(originalData, length);
    //size matrix
    int size = int(sqrt(length) + 0.5);
    //create matrix
    int **matrix = new int *[size];
    for (int i = 0; i < size; ++i){
        matrix[i] = new int[size];
    }
    //fill matrix
    for (int i = 0, k = 0; i < size && k < length; i++){
        for (int j = 0; j < size; ++j){      
            matrix[i][j] = data[k++];                
        }        
    }
    //replace items
    for (int i = 0, k = 0; i < size && k < length; i++){
        for (int j = 0; j < size; ++j, ++k){
            if(matrix[i][j] < number){               
                data[k] = number;
            }   
        }
    }   
    for (int i = 0; i < size; ++i){
        delete[] matrix[i];
    }
    ////////////////////////////////////////delete[] data;
    delete[] matrix;
    //print
    printArray(data, length);
}
 
void printArray(int data[], int length){
 
    for (int i = 0; i < length; ++i){
        std::cout<<data[i]<<"  ";
    }
    std::cout<<std::endl;
}
 
int * copyArray(int data[], int length){
 
    int *newArray = new int[length];
    for (int i = 0; i < length; ++i){
        newArray[i] = data[i];
    }
    return newArray;
}
Вопрос: почему, если рассоментировать delete[] data, то вылетает ошибка?
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru