Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 3

Проблема с созданием динамического массива (выдает ошибку)

12.11.2016, 17:33. Показов 1276. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, задание такое:
"Размер и данные в матрицу вводятся с клавиатуры. Элементы и результаты, разместить в памяти динамически. Результаты вывести на экран.
1)Найти среднее геометрическое положительных элементов каждой строки матрицы;
2)Определить произведение положительных элементов каждого столбца матрицы;
3)Определить произведение элементов четных столбцов матрицы.
Проблема с создание динамического массива (выдает ошибку).
Помимо этого, не могу понять как правильно написать код для выполнения произведения элементов парных столбцов.
Помогите разобраться, пожалуйста. Вот сам код:
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
#include <iostream>
#include <cstdlib>
#include <math.h>
using namespace std;
 
int main()
{   setlocale(LC_CTYPE,"Russian");
    int y,x;
    cout<<"Введите количество строк ";
    cin>>y;
    cout<<"Введите количество столбцов ";
    cin>>x;
    float **A = new float* [y];
    for (int i = 0; i < y; i++)
        A[i] = new float [x];
    int n=1;
    int k=0;
    int E=1;
 
    for(int i=1;i<=y;i++)
    {   int k=0;
        for(int j=1;j<=x;j++)
        {
            cout << "Введите элемент матрицы а[" << i << "][" << j << "] : ";
            cin >> A[i][j];
            if(A[i][j]>0)
            n*=A[i][j];
            if(A[i][j]>0)
            k++;
        }
        cout << "Среднее геометрическое строки " << pow(n,1.0/k)<< endl;
        n=1;
    }
    for(int j=1;j<=x;j++)
    {
        int k=0;
        double n=1;
        for(int i=1;i<=y;i++)
        {
            if(A[i][j]>0)
            n*=A[i][j];
            if(A[i][j]>0)
            k++;
        }
        if (k>1) cout << " Произведение положительных элементов столбца " << n << endl; else cout << " В столбце меньше двух положительных элементов"<<endl;
    }
    for(int j=1;j<=x;++j)
    {
        if(0==j%2)
        {
        for(int i=1; i<=y ; ++i)
         {
             E*=A[i][j];
         }
        cout << " Произведение элементов парных  столбца " << E << endl;
        }
    }
    for (int i = 0; i < y; i++)
        delete [] A[i];
        delete [] A;
        system("pause");
    return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2016, 17:33
Ответы с готовыми решениями:

Проблема с созданием объекта динамического массива Класса
Пишу в С++Builder 6. При работе программы вылетает ошибка на строке BookS = Buf; //Внесение данных в динамический массив.. Ошибка...

Не устанавливается размер динамического массива - выдает ошибку
type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public {...

Игра с динамическим созданием кнопок. Выдает ошибку
Всем привет. Пишу небольшую игрушку. Суть вот в чем: есть несколько уровней сложности (легкий, сложный, очень сложный, непроходимый)....

7
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
12.11.2016, 17:54
С созданием всё нормально. В какой строке ошибка?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
12.11.2016, 17:58
Лучший ответ Сообщение было отмечено gara как решение

Решение

Цитата Сообщение от gara Посмотреть сообщение
C++
1
2
3
for(int i=1;i<=y;i++) 
{ int k=0; 
for(int j=1;j<=x;j++)
Индексация массивов начинается с 0, а не с 1, и заканчивается индексом на единицу меньше размерности, т.е., нужн просто i < y, j < x.
1
148 / 118 / 37
Регистрация: 27.10.2011
Сообщений: 690
12.11.2016, 17:59
Цитата Сообщение от nmcf Посмотреть сообщение
С созданием всё нормально. В какой строке ошибка?
У тебя тут практически в каждом цикле ошибки с индексацией. В C[++] индексация массивов идёт с нуля. Таким образом, если ты хочешь перебрать элементы некоторого массива размером N, то цикл должен быть следующего вида :
C++
1
for (int i = 0; i < N; i++)
0
12.11.2016, 18:00

Не по теме:

Nikitko_Cent, у него.

0
12.11.2016, 18:01

Не по теме:

nmcf, упс :pardon:

0
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 3
12.11.2016, 18:08  [ТС]
Ошибка заключается в правильности подсчета. Пример на скриншоте. Вместо 977275964 должно быть 750, а вместо 84672 должно быть 504.
Миниатюры
Проблема с созданием динамического массива (выдает ошибку)  
0
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 3
12.11.2016, 18:31  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Индексация массивов начинается с 0, а не с 1, и заканчивается индексом на единицу меньше размерности, т.е., нужн просто i < y, j < x.
Исправил как Вы сказали. Осталась проблема только с подсчетом произведения элементов парных столбцов.
Миниатюры
Проблема с созданием динамического массива (выдает ошибку)  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.11.2016, 18:31
Помогаю со студенческими работами здесь

При заполнении двумерного динамического массива выдает ошибку "нарушения прав доступа"
#include&lt;iostream&gt; using namespace std; int main() { int sizeC, sizeS; cout &lt;&lt; &quot;puth size of C:...

Ошибка с инициализацией и созданием динамического массива
ошибка с иницилиазцией и создание динамического массива, не знаю как исправить. Подскажите. #include &quot;pch.h&quot; ...

Проблема с созданием массива из двух существующих
Здравствуйте. Нужно сформировать массив z из массивов y и x,чтобы нечетный элемент массива y складывался с четным элементом массива x и...

Проблема с созданием массива из двух существующих
1)Вот оригинальное задание(для первого кода): Сформировать новый массив из массивов y и x таким образом, что нечетный элемент массива y...

Выдает ошибку, а я не могу понять в чем проблема. В чем проблема, скажите пожалуйста!
dx=0.0005; epsillon=0.00002; i=0; for x= 0:0.0005:3 i=i+1; if x&lt;1 y (i)=-1; elseif x&lt;2 S=0; ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru