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

Инкрементирование элементов массива-счётчика - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не могу удалить динамический массив http://www.cyberforum.ru/cpp-beginners/thread1632360.html
В общем, выдает критическую ошибку: HEAP CORRUPTION DETECTED: after Normal block (#140) at 0x004452BF0. CRT detected that the application wrote to memory after end of heap buffer. когда собираюсь удалить из памяти динамический массив. без delete все работает. в чем проблема? void fillArray(int *pArray, int size); void showArray(int *pArray, int size); void freeArray(int *pArray); void...
C++ Запись в файл слов, которые не повторяются Добрый вечер, помогите с кодом. Как сделать чтобы считать с файла слова в односвязный список, сделать сортировку, и записать в другой файл слова кроме тех которые повторяются. Вот мой код: void List::readFromFile(char *FileWay) { FILE *file; int j = 0; file = fopen(FileWay,"r"); if (file == NULL) { cout << "Error" << endl; return; } http://www.cyberforum.ru/cpp-beginners/thread1632342.html
Разбить текст на страницы C++
Дан текстовый файл. Преобразовать его, разбив текст на страницы и пронумеровав их, причем номер нечетной страницы должен размещаться в правом нижнем углу, а номер четной страницы - в ее левом нижнем углу. Число стока странице задается, а ширина страницы определяется самой длинной строкой в данной странице. Конец страницы отмечается символом с кодом 12, который помещается в отдельной строке. ...
C++ Проверить код на наличие ошибок
Добрый день, форумчане! Кто может проверить код на наличие ошибок ? Вариант задания 26 #include <iostream> #include <cmath> #include <cstdlib> using namespace std; int main() { int i, k = 0, j = 1; double q, z, x = -3;
C++ В одномерном целочисленном массиве поменять местами последний элемент с первым нулевым элементом http://www.cyberforum.ru/cpp-beginners/thread1632292.html
Ввести в память машины одномерный целочисленный массив, размерностью не более 50 элементов. 1)Поменять местами последний элемент с первым нулевым элементом. 2)Упорядочить массив таким образом, чтобы в начале шли отрицательные элементы, затем нулевые, затем положительные. Вывести на экран исходный массив и данные, полученные согласно заданию в варианте. Ввод массива, манипуляции с массивом,...
C++ Задача на поиск совпадений букв первого слова во втором Ребят, решите пожалуйста задачу: Даны два слова. Для каждой буквы первого слова (в том числе для повторяющихся в этом слове букв) определить, входит ли она во второе слово. Например, если заданные слова информация и процессор, то для букв первого из них ответом должно быть: нет нет нет да да нет нет да нет нет Заранее спасибо:) подробнее

Показать сообщение отдельно
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 478
Завершенные тесты: 1
05.01.2016, 21:45     Инкрементирование элементов массива-счётчика
Там в классе баг был, не учитывался сдвиг. Теперь нормально, заодно переделал пример:
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
#include <iostream>
#include <random>
 
using namespace std;
 
class Ranger {
    std::vector<unsigned long> counts;
    double offset;
    double width;
    int count;
public:
    Ranger( double offset, double width, int count ) {
        this->offset = offset;
        this->width = width;
        this->count = count;
        for( int i = 0; i < count + 1; i++ ) {
            counts.push_back( 0 );
        }
    }
    vector<unsigned long>& getData() {
        return counts;
    }
    Ranger& operator<<( double value ) {
        int pos = int((value - offset) / this->width);
        if( pos > counts.size() - 1 ) {
            ++counts[counts.size() - 1];
        } else {
            ++counts[pos];
        }
        return *this;
    }
    void debugPrint() {
        for( int i = 0; i < counts.size(); i++ ) {
            double left = offset + width * i;
            double right = left + width;
            if(i+1 == counts.size()) {
                cout << left << "-inf" << ": " << counts[i] << endl;
            } else {
                cout << left << "-" << right << ": " << counts[i] << endl;
            }
        }
    }
};
 
int main() {
 
    Ranger table( 200.0, 100.0, 4 );
    
    table << 250 << 299 << 301 << 800 << 700 << 267 << 645 << 222 << 450;
 
    table.debugPrint();
 
    return 0;
 
}
 
Текущее время: 02:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru