Conversia la matrice unidimensională - studopediya

Uneori trebuie să copiați matricea A de dimensiune M de N într-o matrice unidimensională de dimensiune B

M * N. Evident, atunci când copiați rândurile (primul rând, mai întâi, apoi a doua, etc.) ale primului element linie A [0] [j] pentru a fi copiate la B [j]. elemente din rândul al doilea A [1] [j] la B [N + j], etc. Rezultă că pentru orice element linie i A [i] [j] este copiat în B [i * N + j] Vom rămâne acum doar într-o buclă dublă pentru itera toate elementele matricei.

Rețineți că, dacă este necesar să se efectueze o operație pe toate sau o parte (în picioare

rând) elementelor matricei și matricea unidimensională au deja o procedură corespunzătoare, acesta poate fi utilizat, având în vedere că șirul numelui string (de exemplu, A [0]) este un pointer la elementul inițial al acestui șir. Trebuie amintit că elementele de memorie ale matricei sunt aranjate în rânduri. (. A se vedea tablouri) De exemplu, funcția de calcul al sumei elementelor poate fi utilizată pentru matricea după cum urmează:

Sall = Suma (A [0], M * N); // suma tuturor liniilor

Am învățat deja cum să sorteze o serie de numere întregi și numere reale, iar acum trebuie să Sorbitan

line ted. Vă puteți gândi la moduri diferite, dar sortarea alfabetică cele mai comune. Atunci când sortarea rânduri apar două probleme.

1. determina care dintre cele două linii de „mai puțin“, adică, care dintre cele două ar trebui să fie mai mare.

Cea de a doua și mai gravă problemă este rezolvată prin intermediul unor indicii. Mai întâi, selectați o

matrice de memorie de indicii pentru siruri de caractere și se va asigura că primul îndreptat indicatorul j- pentru a-lea j-

string matrice. Acum este suficient pentru a plasa semnele corecte și sortarea se va face - rândurile pot fi accesate în ordine alfabetică (sau orice alt) chiar prin aceste indicii. Procedura de sortare prin bula arată astfel:

SortStrings void (char * s [], int n) // * s [] - massivukazateley

p = s [j]; s [j] = s [j-1]; // direcția de permutare

Această funcție folosește următorul program, care sortează siruri de caractere și le afișează deja în ordine alfabetică.

char s [20] [80]; // matrice de 20 de rânduri

char * ps [20]; // array de indicii pe linia 20

// aici trebuie să introduceți o linie și scrie

// variabila pentru a contoriza numărul

pentru (i = 0; i