Преминаване към едномерен масив - studopediya

Понякога трябва да копирате матрицата на размер М от N в едномерен масив от размер B

M * N. Очевидно е, че при копиране на редовете (първи ред, първо, след второто, и т.н.) на първа линия елемент [0] [й], за да се копира Б [й]. елементи на втория ред А [1] [к] на б [М + J] и т.н. От това следва, че за всяка линия елемент и А [Ь] [й] се копира в Б [I * N + й] Сега ще остава само в двойна верига на обхождане всички елементи на матрицата.

Имайте предвид, че ако това е необходимо да се извършат някои експлоатация на всички или някои (актуално състояние

ред) на елементите на матрицата и едномерен масив вече имат съответна процедура, може да се използва, тъй като масива на име низ (например, [0]) е указател към първоначалния елемент на този низ. Трябва да се има предвид, че елементите на паметта на матрицата са подредени в редици. (. Виж масиви) Например, функцията за изчисляване на сумата от елементи може да се използва за матрица, както следва:

Sall = Сума (А [0], M * N); // сумата на всички линии

Ние вече сме се научили как да подреди масив от цели числа и реални числа, а сега ние трябва да сорбитан

Ted линия. Можете да мислите за различни начини, но най-често срещаната азбучен сортирането. При сортиране редове възникват два проблема.

1. Определете кой от двете линии на "по-малко", тоест, кое от двете трябва да е по-висока.

Вторият и по-сериозен проблемът е решен с помощта на указатели. На първо място, изберете

масив памет на указатели към низове и ще се уверите, че първият i- показалец сочи към I-тата

масив низ. Сега е достатъчно да се поставят правилните знаци и сортиране ще бъде направено - редовете могат да бъдат достъпни по азбучен (или всяко друго) точно през тези насоки. Процедура за сортиране по балон изглежда така:

невалидни SortStrings (знак * е [], Int н) // * S [] - massivukazateley

р = S [й]; S [й] = S [J-1]; // посока пермутация

Тази функция се използва следната програма, която сортира струните и ги показва вече по азбучен ред.

овъгляване и [20] [80]; // масив от 20 реда

знак * PS [20]; // масив от указатели на линия 20

// тук ще трябва да въведете ред и пишат

// променлива да се преброят

за (I = 0; и