Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <clocale>
- #include <ctime>
- // Функция для инициализации массива случайными числами от -50 до 99
- void InitArray(int *Array, int n) {
- for (int i = 0; i < n; i++) {
- Array[i] = rand() % 100 - 50;
- }
- }
- // Функция для печати length элементов на экран, начиная с элемента start
- void PrintArray(int *Array, int start, int length) {
- for (int i = start; i < start + length - 1; i++) {
- std::cout << Array[i] << "\t";
- }
- std::cout << std::endl;
- }
- // Функция для поиска максимального элемента и его индекса
- int FindMax(int *Array, int n, int * &Max) {
- int Index = 0;
- for (int i = 0; i < n; i++) {
- if (Array[i] > *Max) {
- Max = &Array[i];
- Index = i;
- }
- }
- return Index;
- }
- int main() {
- setlocale(LC_ALL, "Russian");
- srand(time(0));
- char *Choice = new char[16];
- strcpy_s(Choice, 16, "Yes");
- int n;
- int *Max = nullptr;
- while (strcmp(Choice, "Yes") == 0) {
- std::cout << "Введите размер массива: ";
- std::cin >> n;
- int *Array = new int[n];
- InitArray(Array, n);
- std::cout << "Сгенерированный массив: " << std::endl;
- PrintArray(Array, 0, n);
- Max = Array;
- int Index = FindMax(Array, n, Max);
- std::cout << "Максимальный элемент массива равен " << *Max << " и находится на " << Index + 1 << " месте." << std::endl;
- std::cout << "Положительные элементы слева от максимума: ";
- for (int i = 0; i < Index; i++) {
- if (Array[i] > 0) {
- std::cout << Array[i] << "\t";
- }
- }
- std::cout << std::endl;
- delete[] Array;
- std::cout << "Еще раз? (Yes / No): ";
- getchar();
- gets_s(Choice, 16);
- }
- delete[] Choice;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement