Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2014, 17:01   #1
Svetka.beam
Новичок
Джуниор
 
Регистрация: 26.05.2014
Сообщений: 1
По умолчанию ДИНАМИЧЕСКОЕ ВЫДЕЛЕНИЕ ПАМЯТИ ДЛЯ ДВУМЕРНЫХ МАССИВОВ

Выполнить задание, используя динамическое выделение памяти для двумерного массива, двумя способами:
• описывая двумерный массив как одномерный, с расчетом смещения элемента массива по линейной формуле;
• описывая двумерный массив как указатель на массив указателей.


1. Для заданной матрицы А найти значение .
Код:
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <time.h>                   
using namespace std;
 
void main()
{
    srand((unsigned)time(NULL));
    setlocale (LC_ALL, "rus");
    int nstr, nstl;
    cout <<"Задайте размерн матрицы"<<endl;
    cout <<"Кол-во строк: ";
    cin >> nstr;
    cout <<"Кол-во столбцов: ";
    cin >>nstl;
    int i,j;
 
    cout << "Матрица" << endl;
 
    //Выделение памяти для массива
    int *a = new int[nstr * nstl];
 
    for (i = 0; i < nstr; i++)
        for (j = 0; j < nstl; j++)
            //a[i][j] = rand () % 10 - rand() & 10;
            a[i * nstr + j] = rand() % 10 - rand() % 10;
    for (i = 0; i < nstr; i++)
    {
        for (j = 0; j < nstl; j++)
            cout << setw (3) << a[i * nstr + j];// Вывод
        cout << endl;
 
    }
что дальше делать без понятия. Помогите люди
Изображения
Тип файла: jpg Безымянный.jpg (3.1 Кб, 130 просмотров)

Последний раз редактировалось Stilet; 26.05.2014 в 18:23.
Svetka.beam вне форума Ответить с цитированием
Старый 26.05.2014, 20:46   #2
casekey
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 95
По умолчанию

Ну первый вариант вроде как вами написан.
Второй делается примерно так:
Код:
  size_t row = 5, col = 3;
  int **arr;
  arr = new int* [row];
  for (size_t i = 0; i<row; i++)
    arr[i] = new int[col];
casekey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое выделение памяти! Bantom Помощь студентам 1 07.04.2014 12:48
Динамическое выделение памяти Bantom Помощь студентам 0 02.04.2014 22:35
Выделение памяти для больших массивов Maria9 Общие вопросы C/C++ 11 13.11.2013 15:22
Распределение памяти. Динамическое выделение памяти с++ Tolian92 Помощь студентам 8 14.05.2012 21:44
Динамическое выделение памяти FW-TOT Общие вопросы C/C++ 2 19.12.2008 00:42