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

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте, задание такое:
"Размер и данные в матрицу вводятся с клавиатуры. Элементы и результаты, разместить в памяти динамически. Результаты вывести на экран.
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...

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

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

7
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
12.11.2016, 17:54 2
С созданием всё нормально. В какой строке ошибка?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
12.11.2016, 17:58 3
Лучший ответ Сообщение было отмечено 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 4
Цитата Сообщение от nmcf Посмотреть сообщение
С созданием всё нормально. В какой строке ошибка?
У тебя тут практически в каждом цикле ошибки с индексацией. В C[++] индексация массивов идёт с нуля. Таким образом, если ты хочешь перебрать элементы некоторого массива размером N, то цикл должен быть следующего вида :
C++
1
for (int i = 0; i < N; i++)
0
nmcf
12.11.2016, 18:00
  #5

Не по теме:

Nikitko_Cent, у него.

0
Nikitko_Cent
12.11.2016, 18:01
  #6

Не по теме:

nmcf, упс :pardon:

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала согласования+ стартер fast регистров. Файлы прилагаю. . . .
UserScript для подсветки кнопок языков программировани­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форм быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru