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

Динамическое выделение памяти для двумерного массива

10.12.2011, 22:18. Показов 3279. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужна помощь
вот тело программы, не могу сделать динамическое выделение памяти для первого двумерного массива.
второй массив получается через среднее арифметического строк первого, после сортируется.
Ошибка "Run-Time Check Failure #3 - The variable 'i' is being used without being initialized"

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{   int m,n;
    cin>>m;
    cin>>n;
    int i,j;
    double s,min;
    double *b=new double [i];
    int **a=new int *[i];
         for (int i=0; i<m; i++) 
         {
             a[i] =new int [j];
         }
    cout<<"Enter Matrix C:\n";
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
            cin>>a[i][j];
    }
    cout<<"\nMatrix C:\n";
    for (i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
            cout<<a[i][j]<<"\t";
        cout<<"\n";
    }
    cout<<"Matrix B:\n";
    for(i=0;i<n;i++)
    {
        s=0;
        for(j=0;j<m;j++)
            s=s+a[i][j];
        s=s/m;
        b[i]=s;
    }
    cout<<"\n";
    for(i=0;i<n;i++)
        cout<<b[i]<<"\t";
    for(i=0;i<n-1;i++)
        for(j=i+1;j<n;j++)
            if(b[i]>b[j])
            {
                min=b[j];
                b[j]=b[i];
                b[i]=min;
            }
    cout<<"\n"<<"Sort Matrix B:\t"<<"\n";
    for(i=0;i<n;i++)
        cout<<b[i]<<"\t";
     for (int i = 0; i < m; i++) 
     {
         delete [] a[j];
     }
    delete [] a;
    delete [] b;
    getch();
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2011, 22:18
Ответы с готовыми решениями:

Динамическое выделение памяти для массива
Кто может помочь решить задачу. Для заданного двумерного массива из n строк и m столбцов вывести на экран следующее меню операций: ...

Динамическое выделение памяти для массива
Не могу разобраться, почему программа вызывает точку остановы после выбора действия в функции, причем не показывает, где. Она происходит...

Динамическое выделение памяти для элементов массива
Нужно разделить программу на функции ( не могу толком понять как это сделать) и выполнить следующие требования: 1. Первая функция не...

7
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.12.2011, 22:26
Цитата Сообщение от Captain_ru Посмотреть сообщение
for (int i=0; i<m; i++)
{
a[i] =new int [j];
}
Вот так правильно
a[i] =new int [n];

Добавлено через 1 минуту
И тут тоже
Цитата Сообщение от Captain_ru Посмотреть сообщение
nt **a=new int *[i];
m туда надо

Добавлено через 1 минуту
Цитата Сообщение от Captain_ru Посмотреть сообщение
for (i=0;i<n;i++)
- строки же по m ладно пишу код
0
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 11
10.12.2011, 22:26  [ТС]
все равно таже ошибка
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.12.2011, 22:31
Captain_ru, у вас куча ошибок
Цитата Сообщение от Captain_ru Посмотреть сообщение
or (int i = 0; i < m; i++)
{
delete [] a[j];
Цитата Сообщение от Captain_ru Посмотреть сообщение
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
- я сейчас всё подправлю а вам рекомендую сюда посмотреть Методом Гаусса решить систему n линейных алгебраических уравнений

Добавлено через 1 минуту
В добавок, ну кто сказал что коєффициенты должны быть целыми!
Цитата Сообщение от Captain_ru Посмотреть сообщение
int **a=new int *[i];
0
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 11
10.12.2011, 22:32  [ТС]
признаю свою оплощность, просто туго идет изучение (
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.12.2011, 22:36
Captain_ru, вот ваш код и скрин работы вы только к хедерам свой #include "stdafx.h" добавьте, он мне просто не нужен
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
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{ 
    int i,j,m,n;
    cout<<"Enter m : ";cin>>m;
    cout<<"Enter n : ";cin>>n;
    double s, min;
    double *b = new double [m];
    double **a= new double *[m];
    cout<<"Enter Matrix C:\n";
    for(i=0; i < m; i++)
    {
        a[i] =new double [n];
        for(j=0;j < n; j++)
        {
            cout<<"a["<<i<<"]["<<j<<"] = ";
            cin>>a[i][j];
        }
    }
    cout<<"\nMatrix C:\n";
    for (i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
            cout<<a[i][j]<<"\t";
        cout<<"\n";
    }
    cout<<"Matrix B:\n";
    for(i=0; i < m; i++)
    {
        s=0;
        for(j=0; j < n; j++)
            s = s + a[i][j];
        s = s/1.0*m;
        b[i] = s;
    }
    cout<<"\n";
    for(i=0;i<m;i++)
        cout<<b[i]<<"\t";
    for(i = 0; i < m-1; i++)
    for(j = i + 1; j < m; j++)
    if(b[i] > b[j])
    {
        min=b[j];
        b[j]=b[i];
        b[i]=min;
    }
    cout<<"\n"<<"Sort Matrix B:\t"<<"\n";
    for(i=0;i<m;i++)
        cout<<b[i]<<"\t";
    for (i = m - 1; 0 <= i; i--) 
        delete [] a[i];
    delete [] a;
    delete [] b;
    getch();
return 0;
}
Миниатюры
Динамическое выделение памяти для двумерного массива  
1
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 11
10.12.2011, 22:46  [ТС]
спасибо большой

Добавлено через 9 минут
только почему то матрица B не получаеться как средне арифмитическое строк матрицы С
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.12.2011, 23:26
Цитата Сообщение от Captain_ru Посмотреть сообщение
олько почему то матрица B не получаеться как средне арифмитическое строк матрицы С
Captain_ru, ну какая формула такой и резульат(я ваш код пределывал не свой)

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
for(j=0; j < n; j++)
* * * * * * * * * * * * s = s + a[i][j];
* * * * * * * * s = s/1.0*m;
- это среднее арифметическое и есть.
Вобще данная реализация метода Гаусса на мой взгляд совершенно некорректна, лучше разберите мой код
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Методом Гаусса решить систему n линейных алгебраических уравнений
- там всё 100% по теории

Добавлено через 1 минуту
Понимаете вы должны переставить строки матрица коэффициентов (вобще то это А а не С) и элементы в В, затем занулить А, а она у вас не зануляется ну нигде

Добавлено через 19 минут
Captain_ru, ну что нибудь прояснилось???В принципе могу на плюсы код из
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Методом Гаусса решить систему n линейных алгебраических уравнений
перевести...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2011, 23:26
Помогаю со студенческими работами здесь

Динамическое выделение памяти для массива классов
Привет. В строках 84 - 98 пытаюсь выделить динамически память для свича. После выполнения кейса 'n', размер массива увеличивается на 1,...

Выделение памяти для двумерного массива
Обьясните что означает double** A = new double*, A = new double;,cout.precision(2);, delete A;?????? #include &lt;iostream&gt; ...

Динамическое выделение памяти для массива указателей на char
Доброго времени суток! пытаюсь выделить память для массива указателей на char следующий код #include &lt;iostream&gt; #include...

Выделение динамической памяти для двумерного массива.
#include &lt;iostream&gt; int main() { setlocale( LC_ALL,&quot;Russian&quot; ); int N, M; std::cout &lt;&lt; &quot;Введите кол-во строк в массиве:...

Выделение памяти для динамического двумерного массива внутри функции
Имеется вот такой код : #include &lt;iostream&gt; void allocateMemory(int ***array, int size); void freeMemory(int **array, int size); ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru