V důsledku provedení tohoto kódu bude na obrazovku zobrazeno pole "5 4 3 2 1" - v opačném pořadí. Tímto způsobem můžete snadno odvodit pole pozpátku v programovacím jazyce C pomocí jednoduchých algoritmických triků.
Pole pozpátku v Si: snadný způsob
1. Vytvořte pole s nezbytnými prvky:
#include int main() ;int size = sizeof(arr) / sizeof(arr[0]);// Ваш код здесьreturn 0;>
for (int i = size - 1; i >= 0; i--)
5 4 3 2 1
Tímto způsobem jste úspěšně vyvedli pole pozpátku do si pomocí jednoduchého způsobu. Nezapomeňte, že tento přístup lze použít i u jiných typů polí.
Použití cyklu k přeskupení prvků pole v opačném pořadí
Pokud potřebujete posunout pole pozpátku v programovacím jazyce C, můžete smyčku použít k přeskupení prvků pole v opačném pořadí. Zde je jednoduchý příklad, který ukazuje, jak na to:
- Vytvořte pole s prvky.
- Vytvořte dvě proměnné: jednu pro začátek pole (počáteční index) a druhou pro konec pole (konečný index).
- Pomocí cyklu vyměňte prvky pole, zvyšujte hodnotu počátečního indexu a snižte hodnotu konečného indexu po každé iteraci.
- Pokračujte v tom, dokud je počáteční index menší nebo roven konečnému indexu.
V důsledku toho budou prvky pole vyvedeny v opačném pořadí.
Zde je příklad kódu na C, který ukazuje, jak jej implementovat:
#include int main() ;int start = 0;int end = sizeof(array) / sizeof(array[0]) - 1;while (start < end) for (int i = 0; i < sizeof(array) / sizeof(array[0]); i++)return 0;>
Výsledek provádění tohoto kódu bude:
Zpětné kopírování prvků pole do nového pole
Pro zpětné kopírování prvků pole do nového pole v programovacím jazyce C lze použít následující přístup:
1. Vytvořte dvě pole: původní pole, ze kterého je třeba zkopírovat prvky, a nové pole, do kterého budou prvky zkopírovány v opačném pořadí.
2. Určete velikost původního pole pomocí funkce sizeof().
3. Použijte cyklus for pro zpětné kopírování prvků z původního pole do nového pole. V tomto případě musí být počítadlo cyklu inicializováno hodnotou velikosti původního pole a poté sníženo v každé iteraci.
4. Přiřaďte prvku nového pole hodnotu příslušného prvku původního pole.
#include int main() ; // исходный массивint newArray[sizeof(sourceArray) / sizeof(int)]; // новый массивint size = sizeof(sourceArray) / sizeof(int); // размер исходного массиваfor (int i = size - 1; i >= 0; i--) printf("Исходный массив: ");for (int i = 0; i < size; i++) printf("Новый массив (обратное копирование): ");for (int i = 0; i < size; i++) return 0;>
V důsledku provedení tohoto kódu bude stažen:
Исходный массив: 1 2 3 4 5Новый массив (обратное копирование): 5 4 3 2 1
Nové pole tedy bude obsahovat prvky původního pole, ale v opačném pořadí.
Rekurzivní přístup: převrácení pole prostřednictvím funkce
Níže je uveden příklad této funkce:
void reverseArray(int array[], int start, int end) = end) temp = array[start];array[start] = array[end];array[end] = temp;reverseArray(array, start + 1, end - 1);>
Funkce reverseArray přijímá jako parametry pole array , počáteční index start a koncový index end. Uvnitř funkce dochází k výměně hodnot prvků pole, počínaje počátečním a koncovým indexem,a poté je vyvolán rekurzivní hovor funkce s indexy zvětšenými a zmenšenými. Rekurzivní výzvy pokračují, dokud start nebude větší nebo rovný end .
Příklad použití funkce:
int main() ;int size = sizeof(array) / sizeof(array[0]);reverseArray(array, 0, size - 1);for (int i = 0; i < size; i++)return 0;>
Změna hodnoty ukazatelů prvků pole
K vyvedení pole pozpátku lze použít ukazatele. Ukazatel je proměnná, která obsahuje adresu jiné proměnné v paměti. Můžeme změnit hodnotu ukazatele a tím změnit hodnotu prvku pole.
Zde je příklad kódu, který ukazuje tento koncept:
#include int main() ;int len = sizeof(arr) / sizeof(arr[0]);int* ptr = &arr[len - 1];for (int i = 0; i < len; i++) return 0;>
Po dokončení cyklu bude tedy pole vyvedeno v opačném pořadí.