Преминаване към едномерен масив - 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; и