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

Выход за диапозон... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двумерный массив!!!! http://www.cyberforum.ru/cpp-beginners/thread77345.html
Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы. С помощью допустимых преобразований привести систему к треугольному виду. Найти количество строк, среднее арифметическое элементов которых меньше заданной величины. Спасибо !
C++ инверсии Пусть дана последовательность из 20 целых чисел.Определить количество инверсий в этой последовательности.(то есть таких пар элементов в которых большее число число находится слева от меньшего xi>xj при i<j ) Помогите решить плз http://www.cyberforum.ru/cpp-beginners/thread77338.html
Итоговая: массивы с модулем C++
В массиве, состоящем из n вещественных чисел, необходимо вычислить: - номер минимального по модулю элемента массива; - сумму модулей элементов массива, расположенных после первого отрицательного элемента. буду очень признателен.
C++ Вычисление (правильно ли?)
6 Даны действительное число а и натуральное число n. Вычислить #include <cmath> #include <iostream> using namespace std; void main( void )
C++ В чем моя ошибка ? http://www.cyberforum.ru/cpp-beginners/thread77312.html
задача ввести в Мэмо числа , поместить в массив и найти минимальное из них , выводя его в Эдит ... в чем я ошибся ?? подскажите пожалуйста ! { int i; //индекс int a;// массив из 10ти элементов int min; //вводим параметр мин for(i=1;i<10;i++) //для 1 го увеличиваем на 1 до 10ти
C++ Матрицы Помогите решить задачку нужно создать класс матрица в нем определить виртуальную функцию, которая ищет сумму элементов, затем создать произвольный класс который ищет max элемент этой матрицы. Как находить сумму и max я знаю, но как это реализовать с помощью виртуальной функции не получается. подробнее

Показать сообщение отдельно
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
20.12.2009, 22:57     Выход за диапозон...
В
коде
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
#include <iostream>
#include <algorithm>
#include <numeric>
#include <time.h>
using namespace std;
//////////////////////////////////////////////////////
void out(int *a,int n,int k);
void vin(int *a,int n);
void prod(int *a,int n,int k);
//////////////////////////////////////////////////////
int main()
{
    system("chcp 1251");
    int n=3,k=5;
    /*cout << "Введите количество строк: ";
    cin >> n;
    cout << "Введите количество столбцов: ";
    cin >> k;
    int *arr = new int[n*k];*/
    //int zero[2] = {0, 0};
    int arr[] = {0, 3, 3, 0, 1,
                        2, 0, 6, 1, 0,
                        1, 0, 10, 0, 2};
    //vin(arr,n*k);
    cout << "Массив:" << endl;
    out(arr,n,k);
    cout << "Произведения:" << endl;
    prod(arr,n,k);
    /*prod = accumulate(find_first_of(arr,arr+n,zero,zero+1)+1,
                        find_end(arr,arr+n,zero,zero+1),
                        1,
                        multiplies<int>());
    cout << prod << endl;
    cout << *(find_first_of(arr,arr+n,zero,zero+1)+1)<< endl;
    cout << *(find_end(arr,arr+n,zero,zero+1)-1) << endl;*/
    getchar();
    return 0;
}
////////////////////////////////////////////////////////////
void out(int *a,int n, int k)
{
    int x = k-1;
    for(int i = 0; i < n*k;++i)
    {
        cout << a[i] << "  ";
        if(i == x)
        {
            cout << endl;
            x += k;
        }
    }
}
//------------------------------------------------------------
void vin(int *a,int n)
{
    srand(time(NULL));
    for(int i = 0; i < n; ++i)
        a[i] = rand()%10-5;
}
//-------------------------------------------------------------
void prod(int *a,int n,int k)
{
    int zero[2] = {0, 0};
    int x = k, i = 1;
    for(int i = 0; i < n; ++i)
    {
        cout << accumulate(find_first_of(a+i*x,a+(i+1)*x-1,zero,zero+1)+1,
                        find_end(a+i*x,a+(i+1)*x-1,zero,zero+1),
                        1,
                        multiplies<int>()) << endl;
    }
    /*for(int i = 0; i < n;++i)
    {
        cout << *(find_first_of(a+i*x,a+(i+1)*x-1,zero,zero+1)+1) << "  ";
        cout << *find_end(a+i*x,a+(i+1)*x-1,zero,zero+1) << endl;
        //cout << *(a+i*x) << "  " << *(a+(i+1)*x-1) << endl;
    }*/
}
при исполнение в 67 строке вылетает ошибка о неверном обращении к неверному адресу

Выход за диапозон...

Что нужно изменить. чтобы заработало..?

ЗЫЖ для теста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru