diff --git a/1.cpp b/1.cpp index 898198d..d9fcf41 100644 --- a/1.cpp +++ b/1.cpp @@ -1,11 +1,19 @@ // Разверните строку. Указатель reverse_string должен // указывать на развернутую строку. - +#include char* string = "The string!"; int main() { char* reverse_string; - + int Len = strlen(string); + reverse_string = new char[Len + 1]; + reverse_string[Len] = '\0'; // ending 0 + for(int beg = 0, end = Len - 1; beg <= end; beg++, end--) + { + reverse_string[beg] = string[end]; + reverse_string[end] = string[beg]; + } + delete [] reverse_string; return 0; } \ No newline at end of file diff --git a/2.cpp b/2.cpp index 9eed732..6eb5cff 100644 --- a/2.cpp +++ b/2.cpp @@ -10,7 +10,15 @@ typedef int Matrix[c_kM][c_kM]; int min_from_top_sector(Matrix& m) { - + int min = m[0][0]; + int middle = c_kM / 2 + 1; + for(int i = 0; i < middle; i++) + for(int j = i; j < c_kM - i; j++) + { + if(min > m[i][j]) + min = m[i][j]; + } + return min; } int _tmain(int argc, _TCHAR* argv[]) diff --git a/3.cpp b/3.cpp index 169e055..f887033 100644 --- a/3.cpp +++ b/3.cpp @@ -14,10 +14,34 @@ struct List // It should return pointer to the added List object. List* Add(List* l, int value) { - + List * new_last = new List(); + new_last->next = nullptr; + new_last->value = value; + if(!l) // if empty + return new_last; + while(l->next) // find the last element + l = l->next; + l->next = new_last; + return new_last; } +void FreeList(List* head) +{ + if(!head) + return; + FreeList(head->next); + delete head; + head = nullptr; +} int main(int argc, char* argv[]) { + const int N = 6; + List * l = Add(nullptr, 1); + for(int i = 2; i < N; i++) + { + Add(l, i); + } + FreeList(l); + return 0; } \ No newline at end of file