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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Кукарача
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 9
#1

Заполнение матрицы по правилу - C++

14.12.2012, 02:36. Просмотров 354. Ответов 6
Метки нет (Все метки)

Привет, делаю лабораторную, нужно заполнить матрицу по заданному правилу:
19 20 21 22 23 24
18 17 16 15 14 13
7 8 9 10 11 12
6 5 4 3 2 1

Размер матрицы ввожу сама, вот мой код:
Код
#include <iostream>

using namespace std;

void MatrixOut(int **MATRIX, int COLOMNS, int ROWS);

int main()
{
   int Colomns, Rows;

   cout << "Input the size of matrix\n";
   cin >> Colomns >> Rows;             

   int **matrix=new int *[Colomns];
   for(int i=0; i<Colomns; i++){
    matrix[i]= new int [Rows];
   }                                 

   matrix[Colomns-1][Rows-1]=1;
   for(int i=Rows-2; i>0; i--){
    for(int u=Colomns-2; u>0; u--){
     matrix[i][u]++;
   } }                                 

   MatrixOut(matrix, Colomns, Rows);  

}

void MatrixOut(int **MATRIX, int COLOMNS, int ROWS){
  for(int a=0; a<COLOMNS; a++){
   for(int b=0; b<ROWS; b++){
    cout << MATRIX[a][b] << "\t";
   }
   cout << endl;
  }
}
Все компилируеться, но при запуске он заполняет матрицу адресами,только matrix[Colomns-1][Rows-1] - единица,как и указала. Что не так в коде?
Комплирую на CodeBlocks.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2012, 02:36     Заполнение матрицы по правилу
Посмотрите здесь:

Заполнение массива по правилу - C++
Какая формула нужна для массива, чтобы он имел форму 1 12 123 1234 12345 ?? Но так, чтобы не был заранее инициализирован, не...

Массивы(задание) Заполнение массива по правилу. - C++
1. Дано число n. Создайте целочисленный массив A, и заполните его по следующему правилу: - числа на диагонали, идущей из правого...

Составить функцию для построения вектора из элементов матрицы по заданному правилу и отсортировать элементы матрицы - C++
11. Задано матрицю А={aij} розмірності nn. Скласти функцію для побудови вектора B={bi} за наступним правилом: якщо aii0, то bi узяти...

Заполнить матрицы по правилу - C++
Доброго времени суток. Вот встал перед проблемой при работе с матрицей. Необходимо заполнить матрицу 5х5 следующим образом 1 1 1 1...

Из матрицы получить вектор по правилу - C++
Из матрицы размером N×M получить вектор B, присвоим его k-му элементу значение 0, если все элементы k-го столбца матрицы нулевые, иначе 1....

Умножение матрицы на матрицу по правилу - C++
Привет всем. Было у меня задание &quot;найти сумму и разность матриц&quot;, с чем я легко справился (код приложу ниже). Но тут мне сказали, сделать...

Заменить элементы матрицы по правилу - C++
помогите решыть задание: . Заменить элементы матрицы A=(a), i=j=1,2,...,n, по правилу: a ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
7172 / 4338 / 633
Регистрация: 29.11.2010
Сообщений: 11,784
14.12.2012, 02:38     Заполнение матрицы по правилу #2
C++
1
2
3
4
for(int i=Rows-2; i>0; i--){
    for(int u=Colomns-2; u>0; u--){
     matrix[i][u]++;
   } }
так вы его тут и не меняете
Кукарача
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 9
14.12.2012, 02:46  [ТС]     Заполнение матрицы по правилу #3
последний елемент и должен быть единица, я сказала к тому, что остальные -10161920, 10181921 или типа того.
MrGluck
Модератор
Эксперт CЭксперт С++
7172 / 4338 / 633
Регистрация: 29.11.2010
Сообщений: 11,784
14.12.2012, 02:49     Заполнение матрицы по правилу #4
Кукарача, так до них карающая рука инициализации и не доходит. У вас берет диапазон [1, n-2], а должно [0, n-1]. А еще вы вместо инициализации значениями инкрементируете мусор.
Кукарача
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 9
16.12.2012, 04:20  [ТС]     Заполнение матрицы по правилу #5
спасибо, разобралась,хотя и пришлось ввести обратную матрицу, всмысле которая запонялась: 1 2 3
4 5 6
,все заработало))
MrGluck
Модератор
Эксперт CЭксперт С++
7172 / 4338 / 633
Регистрация: 29.11.2010
Сообщений: 11,784
16.12.2012, 05:00     Заполнение матрицы по правилу #6
Кукарача, выложите код, вдруг кому понадобится еще.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2012, 05:39     Заполнение матрицы по правилу
Еще ссылки по теме:

Сформировать из матрицы вектор по правилу - C++
Помогите решить: дана матрица А(NxN), записанная в бинарный файл. Структура файла следующая: сначала записано значение N, а затем матрица...

Сформировать из матрицы вектор по правилу - C++
Дано матрицу размером MxN. Сформировать из этой матрицы вектор по правилу: первые N элементов вектора - это элементы матрицы первой строки,...

Получить элементы квадратной матрицы по правилу - C++
Написать программу используя методы ООП для решения след. задачи: получить элементы квадратной матрицы А=|aij|, i,j=1,2...n....

Поменять строки матрицы по указанному правилу - C++
1. Если количество строк в массиве четное, то поменять строки местами по правилу: первую строку со второй, третью – с четвертой и т.д. Если...

Каждую строку матрицы Z(5,4) преобразовать по правилу - C++
Дана задача. Каждую строку матрицы Z(5,4) преобразовать по правилу: если максимальный элемент не первый, то поменять его местом с...


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

Или воспользуйтесь поиском по форуму:
Кукарача
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 9
16.12.2012, 05:39  [ТС]     Заполнение матрицы по правилу #7
Код
#include <iostream>

using namespace std;

void MatrixOut(int **MATRIX, int COLUMNS, int ROWS);

int main()
{
   int Columns, Rows;

   cout << "Input the size of matrix\n";
   cin >> Columns >> Rows;

   int **matrix=new int *[Rows];
   int **0matrix = new int *[Rows];
   for(int i=0; i<Rows; i++){
    matrix[i]= new int [Columns];
    0matrix[Rows-i-1] = matrix[i];
   }


   for (int y=0; y<Rows; y++) {
    int b = (y) * Columns;
    for (int x=0; x<Columns; x++) {
     0matrix[y][x] = (y%2==1) ? ( b + x )  : ( Columns - x + b - 1);
    }
   }

  MatrixOut (matrix, Columns, Rows);
}


  void MatrixOut(int **MATRIX, int COLUMNS, int ROWS){
  for (int y=0; y<ROWS; y++) {
   for (int x=0; x<COLUMNS; x++) {
    cout << MATRIX[y][x] << "\t";
   }
  cout << endl;
  }
  }
вот
Yandex
Объявления
16.12.2012, 05:39     Заполнение матрицы по правилу
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru