В задачата за 3 ще има структури, но няма да има указатели
Задача, която не се компилира ще се счита за грешна и ще носи 0 точки!
Ще има по-малко задачи, за да имате време да обърнете внимание на компилацията и грешките, които ви дава
3 of 9
4 of 9
Задачи(1)
Да се разменят стойностите на две числа чрез функцията void swap(int*, int*)
Да се дефинира функцията void rotr(int*, int*, int*); която “завърта” стойностите на трите подадени числа надясно т.е. стойността на второто става равна на стойнстта на първото и така за останлите две.
Да се дефинира функцията int* find(int *haystack, int size, int needle);, която връща указател към елемента в масива haystack със стойност needle. Ако няма такава стойност да се върне NULL
5 of 9
Задачи(2)
Да се дефинира функцията void get_min_max(int *arr, int *min, int *max, int size); която връща минималната и максималната стойност в масива, чрез указателите към min и max. Ако масивът е празен да се запише стойността -1 за min и max
Да се дефинира функцията int print_sequence(int *start, int *end);, която принтира всички елементи между началния и крайния указател включително и връща бройката принтирани елементи
Да се дефинира функцията void str_reverse(char*);, който обръща подадения стринг. Note: ако извикаме функцията по този начин str_reverse(“asd”), ще се компилира, но няма да работи! Защо?
6 of 9
Задачи(3)
Да се дефинира функцията void max_seq(int *arr, int *start, int *end, int size);, която връща индексите на началото и края на най-дългата възходяща последователност от числа в arr. Пример: Ако в arr има числата 5, 8, 12, 3, 7, 1, 9 - то най-дългата възходяща последователност са числата 5, 8, 12, следователно в start трябва да има стойност 0, а в end стойност 2 след изпълнението на функцията
7 of 9
Задачи(4)
Да се дефинира функцията void max_seq(int *arr, int **start, int **end, int size);, която връща указатели към началото и края на най-дългата възходяща последователност от числа в arr. Пример: Ако в arr има числата 5, 8, 12, 3, 7, 1, 9 - то най-дългата възходяща последователност са числата 5, 8, 12, следователно start трябва да бъде указател към елемента 5, а end да е указател към елемента 12. Може да използвате print_sequence, с аргументи start и end, от предишните задачи, за да проверите дали функцията ви работи правилно
8 of 9
Задачи(5)
Да се дефинира функцията void get_min_max(int *arr, int **min, int **max, int size); която връща минималната и максималната стойност в масива като указатели към тях чрез указателите min и max. Ако масивът е празен да се запишат NULL указатели.