Загрузка...

Задачи на c++ (Одномерные динамические массивы.)

Тема в разделе C/C++ создана пользователем shabby999 2 дек 2020. 691 просмотр

  1. shabby999
    shabby999 Автор темы 2 дек 2020 Заблокирован(а) 0 22 ноя 2020
    1)Дан массив целых чисел, размер массива вводиться с клавиатуры. Посчитать количество нечетных элементов предшествующих минимальному элементу или первому вхождению минимального элемента, если их несколько.
    2)Дан файл целых чисел. Первый элемент файла – количество этих чисел, следующие элементы - последовательность чисел (напр. 4 1 67 2 23). Заменить в данной последовательности все заканчивающиеся на четную цифру элементы на минимальный элемент последовательности и записать результат в новый файл.
    3)Дан файл целых чисел. Считать данные из файла в массив, перед каждым нечетным элементом массива вставить случайное число из того же диапазона, что и элементы массива, затем в полученном массиве удалить все элементы кратные 7. Вывести промежуточное и результативное состояния массива на экран
    За помощь отплачу 150-250р
     
  2. BundesGott
    BundesGott 2 дек 2020 3 2 дек 2020
    shabby999,
    Не забудь где файлы указать свое местоположение файлов для ввода. В третьей задаче формат файла как и во второй - элементы написаны через пробел. Вектор тоже динамический массив, так просто немного проще
    C
    #include <iostream>

    using namespace std;
    int* fillarr(int);
    int solve(int*);

    int main()
    {
    int N;
    cout << "Input size of array: ";
    cin >> N;
    cout << solve(fillarr(N));
    system("pause");
    }

    int * fillarr(int N) {
    int* arr = new int[N];
    for (int i = 0; i < N; i++) {
    cout << "Input " << i + 1 << " element" << endl;
    cin >> arr[i];
    }

    for (int i = 0; i < N; i++) {
    cout << arr[i] << " ";
    }
    return arr;
    }

    int solve(int* arr) {
    int min = arr[0];
    int index = 0;
    for (int i = 1; i < sizeof(arr); i++) {
    if (arr[i] < min) {
    min = arr[i];
    index = i;
    }
    else if (arr[i] == min) break;
    }
    cout << endl << "Min " << min << endl;
    int k = 0;
    for (int i = 0; i < index; i++) {
    if (arr[i] % 2 != 0) k++;
    }
    return k;
    }


    Вторая
    C
    #include <iostream>
    #include <fstream>
    using namespace std;

    int* solve(int* arr);

    int main() {

    ifstream filein("C:\\Users\\bunde\\Desktop\\File.txt");
    int N;
    filein >> N;
    int* arr = new int[N];
    for (int i = 0; i < N; i++) {
    filein >> arr[i];
    }
    filein.close();
    ofstream fileof("C:\\Users\\bunde\\Desktop\\Result.txt");
    arr = solve(arr);
    for (int i = 0; i < N; i++) {
    fileof << arr[i] << " ";
    }
    fileof.close();
    system("pause");
    }

    int* solve(int* arr) {
    int min = arr[0];
    for (int i = 0; i < sizeof(arr); i++) {
    if (arr[i] < min) min = arr[i];
    }

    for (int i = 0; i < sizeof(arr); i++) {
    if ((arr[i] % 10) % 2 == 0) arr[i] = min;
    }
    return arr;
    }
    C

    #include <iostream>
    #include <fstream>
    #include <vector>
    #include <algorithm>
    #include <ctime>

    using namespace std;

    void solve(vector<int>);

    int main() {
    srand(time(NULL));
    ifstream filein("C:\\Users\\bunde\\Desktop\\File.txt");
    int N;
    vector<int> arr;
    while (!filein.eof())
    {
    filein >> N;
    arr.push_back(N);
    }
    filein.close();
    solve(arr);
    }

    void solve(vector<int> arr) {
    int min = *min_element(arr.begin(), arr.end());
    int max = *max_element(arr.begin(), arr.end());
    cout << "Min " << min << " Max " << max << endl;
    cout << "Default" << endl;
    for (int i = 0; i < arr.size(); i++) {
    cout << arr[i] << " ";
    }
    for (int index = 0; index < arr.size(); index++) {
    if (arr[index] % 2 != 0) {
    arr.insert(arr.begin() + index, rand() % (max - min + 1) + min);
    index++;
    }
    }
    cout << endl << "Stady 1" << endl;
    for (int i = 0; i < arr.size(); i++) {
    cout << arr[i] << " ";
    }

    for (int i = 0; i < arr.size(); i++) {
    if (arr[i] % 7 == 0) arr.erase(arr.begin() + i);
    }
    cout << endl << "Final" << endl;
    for (int i = 0; i < arr.size(); i++) {
    cout << arr[i] << " ";
    }
    }
     
    1. BundesGott
      BundesGott, Чет в первой задаче затроил, вот это вырезать над. не могу уже отредачить сообщ, внизу вот напишу.
    2. shabby999 Автор темы
Top
Загрузка...