Загрузка...

Task for C++ pointers

Thread in C/C++ created by Kosmoson0401 May 16, 2023. 181 view

  1. Kosmoson0401
    Kosmoson0401 Topic starter May 16, 2023 Banned 0 Apr 26, 2023
    Привет парни. Такой вопрос: ебал я в рот указатели. Помогите пожалуйста с задачкой <3.
    Создать функцию, возвращающую указатель на первый элемент массива >10. Вывести все элементы до, после него.

    Вот что есть у меня на данный момент (ток заполнение массива):
    #include <iostream>
    #include <ctime>

    using namespace std;

    void fillArray(int* arr, int const size)
    {
    for (int i = 0; i < size; i++)
    {
    *(arr + i) = rand() % 20;
    }
    }

    void showArray(int* arr, int const size)
    {
    for (int i = 0; i < size; i++)
    {
    cout << *(arr + i) << " ";
    }
    cout << endl;
    }


    int main()
    {
    srand(time(NULL));
    setlocale(LC_ALL, "Russian");
    int size;
    cout << "Введите размер массива: ";
    cin >> size;
    int* arr = new int[size];
    fillArray(arr, size);
    showArray(arr, size);
    delete[] arr;
    }
     
  2. Membro
    Membro May 16, 2023 SELL XBOX SE METHOD TG|DM 100 Feb 25, 2022
    C
    #include <iostream>
    #include <ctime>

    using namespace std;

    int* firstGreaterThanTen(int* arr, const int size)
    {
    int i = 0;
    for (; i < size; i++)
    {
    if (*(arr + i) > 10)
    {
    return (arr + i);
    }
    }
    return nullptr;
    }

    void showArray(int* arr, const int size)
    {
    for (int i = 0; i < size; i++)
    {
    cout << *(arr + i) << " ";
    }
    cout << endl;
    }

    int main()
    {
    srand(time(NULL));
    setlocale(LC_ALL, "Russian");
    int size;
    cout << "Введите размер массива: ";
    cin >> size;
    int* arr = new int[size];
    for (int i = 0; i < size; i++)
    {
    *(arr + i) = rand() % 20;
    }
    showArray(arr, size);
    int* greaterThanTen = firstGreaterThanTen(arr, size);
    if (greaterThanTen != nullptr)
    {
    cout << "Первый элемент >10: " << *greaterThanTen << endl;
    cout << "Элементы до: ";
    for (int* p = arr; p < greaterThanTen; p++)
    {
    cout << *p << " ";
    }
    cout << endl << "Элементы после: ";
    for (int* p = greaterThanTen + 1; p < arr + size; p++)
    {
    cout << *p << " ";
    }
    }
    else
    {
    cout << "Нет элементов >10" << endl;
    }
    delete[] arr;
    return 0;
    }
     
  3. Daemon
    Daemon May 16, 2023 1680 Jan 8, 2021
    C
    #include <iostream>

    // Поиск адреса первого элемента > 10
    int* f1(int arr[], const int size){
    int i = 0;
    while(arr[i]<=10 && i < size) ++i;
    return (arr+i);
    }

    // Вывод: 1 строка ДО, 2 ПОСЛЕ
    void f2(int arr[], int* el, const int size){
    for(int i = 0; i < size; ++i)
    if(arr+i != el) std::cout << arr[i] << ' ';
    else std::cout << '\n';
    }

    int main() {
    int mas[] = {5,6,11,4,5,11,7};
    f2(mas, f1(mas, 7), 7);
    }
     
Loading...
Top