Основи програмування на С ++ для початківців

Завдання: Одномерные массивы C

Приступая к решению задач, ознайомтеся зі статтями Массиви в C++   і Генератор випадкових чисел rand(), если еще не читали их.   Постарайтеся вирішувати запропоновані завдання самостійно і дивитися наші рішення тільки в крайньому випадку.

1. Создать массив типа int на 10 елементів і заповнити його випадковими числами від 7 до 14. Після заповнення перезаписати всі числа, які більше десяти:  від закладеного значення відняти 10.  Наприклад в осередку зберігається число 12: 12 – 10 = 2. Записать в эту ячейку 2 Записывая новое значение, используйте складові(комбіновані) оператори.

2. Заполнить массив из 50-ти элементов нечётными числами от 1 до 99. (используйте операцию остаток от деления, чтобы проверить число на чётность)

3. Объявить три массива. Перші два заповнити випадковими значеннями від 10 до 30. В елементи третього масиву записати суму відповідних елементів перших двох масивів. (в нулевую ячейку третьего – сумму нулевых ячеек первого и второго массивов и так далее). Затем найти среднее арифметическое элементов третьего массива, максимальное значение и минимальное значение, которые он хранит.

110 думки про "Завдання: Одномерные массивы C

  1. Гарний сайт, статті написані зрозуміло і доступно. Але! незручно, що уроки йдуть в поплутаної послідовності: я була на уроці цикл while, по стрілочки далі потрапляємо на рядки, посилання на урок масиви бачимо прямо в статті, в наступній на random, а якщо піти по стрілці далі потрапляємо знову на вітання (1 стаття). Досить плутана доріжка, моя порада зробити правильну послідовність статей по темах при переході по активним стрільцям, що під статтею.

      1. спасибі за відповідь. Да, я бачила на головній. Просто звикла урок пройшла => тисни на наступний :) А так доводиться повертатися на головну.

  2. Всім привіт. Справа в тому , що неправильно вважає не тільки максимальне, мінімальне і середнє, але і суму кожного елемента 1-го і 2-го масиву в 3-му. В чому проблема?)
    #include
    #include
    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, "rus");

    int Ar1 [30] = {};
    int Ar2 [30] = {};
    int Ar3 [30] = {};
    const int lowerLimit = 10;
    const int upperLimit = 30;

    srand(time(NULL));
    cout << "Массив Ar1: ";
    for (int i = 0; i < 30; i++)
    {
    Ar1[i] = lowerLimit + rand() % (upperLimit - lowerLimit + 1);
    cout << Ar1[i] << " | ";
    }
    cout << endl << endl;

    cout << "Массив Ar2: ";
    for (int i = 0; i < 30; i++)
    {
    Ar2[i] = lowerLimit + rand() % (upperLimit - lowerLimit + 1);
    cout << Ar1[i] << " | ";
    }
    cout << endl << endl;

    cout << "Массив Ar3: ";
    for (int i = 0; i < 30; i++)
    {
    Ar3[i] = Ar1[i] + Ar2[i];
    cout << Ar3[i] << " | ";
    }
    cout << endl << endl;
    float sum = 0;
    int srednee = 0;
    int max = Ar3[0];
    int min = Ar3[0];
    for ( int i = 0; i < 30; i++)
    {
    sum += Ar3[i];
    if (Ar3[30] > max)
    {
    max = Ar3[i];
    }

    }
    srednee = sum / 30;
    cout << "Макс = " << max << endl;
    cout << "Мин = " << min << endl;
    cout << "Среднее = " << srednee << endl;

    system("pause");
    return 0;
    }

    1. 1) З приводу суми елементів 1-го і 2-го масиву і їх записи в осередку 3-го масиву. Дивись уважно на рядок 29. У циклі ти заповнюєш другий масив, а на екран виводиш дані першого.
      2) Максимум. Дивись рядок 47: Ar 3[30] > макс ? замінити ar3[i] > макс
      3) Пошук мінімального значення в коді не прописаний. Допиши і буде тобі мінімальне :)

  3. У третьому завданні я постарався все в одному for зробити, вважаючи що у автора так і буде. Яке ж було здивування, що у відповіді їх 4. мабуть, це було зроблено, щоб таким новачкам, как мы, було зрозуміліше.
    for (INT I = 0; i<max;i )
    {
    arr[i]= 1 + ранд()%100;
    arr2[i]= 1 + ранд()%100;
    arr3[i]= обр[i]+arr2[i];
    а + = arr3[i];

    if (min<arr3[i])
    {}
    else {хв = arr3[i];}
    cout<<arr3[i]<<"|";
    }
    Ь = а / макс;
    cout<<"\nsred = "<<b<<endl;
    cout<<"min = "<<min<<endl;
    return 0;
    }
    Перепрошую за малозрозумілий код, я писав його прямо в телефоні, в онлайн компіляторі.

  4. Мені одному здається, що завдання складні? І при цьому у мене нічого не виходить.

    1. Не турбуйся, просто я маю певний досвід. Деяким спочатку складно зрозуміти, навіщо взагалі змінна потрібна. В загальному, побільше практики треба, кожен оператор розбирай окремо.

  5. не можу ніяк від 7 до 14 заповнити рандомно … Чи зможе хто об'сяніть?

    1. #include
      #include
      #include
      using namespace std;

      int main()
      {
      setlocale(LC_ALL, "rus");
      int arr[10] = {};

      srand(time(NULL));

      for (int i = 0; i < 10; i++) { arr[i] = 7 + rand() % 8; cout << arr[i] << " || "; } cout << endl; }

      rand() % 8 буде генерувати числа від 1 до 7

  6. Є легкий спосіб справлятися з генеруються числами (так звані псевдо-числа)

    [код]#включають в себе // у кого CTime
    using namespace std;
    void main()
    {
    setlocale(LC_ALL, “RU”);
    srand(time(NULL));

    for(INT I = 0; i<size; i )
    {
    array[i]= рандів()%(х-у)+(і) //x – найбільше число задано нам
    //і – найменше число задано нам
    cout << " array[" << i << "] = " << array[i] << "\n"; // вывод на экран
    }

    //наприклад задані числа від 10 до 20
    for(INT I = 0; i<size; i )
    {
    array[i] = rand()%(20-10)+(10); //20 – найбільше число задано нам
    //10 – найменше число задано нам
    cout << " array[" << i << "] = " << array[i] << "\n"; // вывод на экран
    }
    [/код]

    1. Брати залишки від ділення (%) rand() в будь-яких формах і проявах – це погана практика! При цьому порушується рівномірний закон розподілу rand(). У найпростіших випадках це проходить безкарно, але, например, при моделюванні – це дає абсолютно спотворені результати.

  7. З приводу другого завдання, зразок ось так набагато простіше вирішити.

    1. все зрозумів, просто в умови повинно бути написано : заповнити … рандомних непарними числами від 1 до 99.

      1. Да, це допущена помилка у формулюванні завдання.

  8. А чому в коді першого завдання стоїть умова більше або дорівнює, якщо в умові сказано, що перезаписати необхідно ті елементи масиву, в яких числа строго БІЛЬШЕ десяти?

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *