Основы программирования на С++ для начинающих

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

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

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

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

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

110 thoughts on “Задачи: Одномерные массивы C++

  1. Вроде проще вышло, строго по условию сделал

  2. Здравствуйте. Не поняла один момент по поводу второй задачи. Задание было: заполнить массив, состоящий из нечетных чисел от 1 до 99.
    В ответе на задачу я увидела другое. Был создан массив[50] с четными и нечетными числами от 1 до 99. А потом, с помощью условия if на экран выводятся только нечетные элементы. Но это не значит, что был создан массив только с нечетными числами. cout не записывает новые элементы в массив, а тупо выводит на экран нечетные числа. Если мы сейчас снова попросим вывести на экран массив ourArr[i], он выведет массив и с четными и нечетными числами. Задача, по моему мнению, решена не корректно. Если я не права, пожалуйста, объясните мне…
    Спасибо)

    1. Как мне кажется, во 2-й задаче неправильно сформулировано условие задачи, а не её решение. Должно быть как-то так:
      – заполнить 50-элементный массив случайными нечётными числами из диапазона [1…100].

      И решение такой задачи приведено правильное (одно из возможных).

    2. Задача решена правильно. Шаг в цикле меняется только если число в массиве четное, иначе цикл будет повторятся до тех пор пока число не будет четным( i++ только при четном числе)

    3. Верно там есть только один массив , но его значения верни, так как функция рандом, есть тем же масивом только уявним. И в наш массив закладиваем только числа строго по умове. И когда второй раз будем виводить, он тоже виведет его верно, так как ми положили туда 50 значенний, надеюсь ви поняли)
      Извиняюсь за сломанний русский)

  3. ребят, как вы себе представляете решение первой задачи, как в вашем ответе, если вы до этого не показывали как делать рандомные числа. то есть, эта задача подразумевает в себе то, что еще не проходили. и это не первый случай между прочим. программирование основано на логике, но в этом случае ее не наблюдается.

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

      1. да, точно. спасибо за ответ. хотя ошибок все равно хватает, конечно.

    2. А вы скиньте ссылку,где понятней и лучше обьясняют основы и если говорите про ошибки,то выкладывайте!Одну ошибку уже указали…

      1. tpojuh, кто бы за нас так заступался, как не ты )) Спасибо, что комментируешь статьи и отвечаешь на комментарии пользователей.

      2. если даже и нет нигде понятней, это ведь не означает, что не нужно стремиться к хорошему, а стоит оставить, мол, и так сойдет. + вон, выше, ошибку уже указали. формулировка у второй задачи не правильная. но вообще не поймите превратно, я говорю это все не потому что против, а потому что за. просто хотелось бы, что б было лучше.

      3. Айтек, всё нормально. На тебя никто не обижается )
        По возможности и при наличии свободного времени будем улучшать.

  4. Реализовал все на Java. Вдруг кому интересно.
    1 Задание:

    2 Задание:

    3 Задание:

  5. Мне кажется, во второй задаче проще сделать так:
    do{
    ourArr[i] = 1 + rand() % 100;
    }while(ourArr[i] % 2 == 0);

  6. Зраствуйте. Я хотела узнать как вставить перед каждым положительным элементом массива нулевое значение

    1. В C/C++ незьзя “вставить” элементы в массив.
      Можно только переписать значения в другой массив, большего размера, где, переписывая, вы будете некоторым элементам присваивать нулевые значения.

    1. srand() – это инициализация начального значения генератора последовательности (псевдо)случайных значений.
      В качестве инициализирующего значения используется текущее время time( NULL ).
      Такие вещи делаются для того, чтобы последующие запуски программы давали не повторяющиеся (случайные) значения. Это очень плохо для отладки такого кода.

  7. Привет всем! скажите почему не получается добавить код сюда, делаю все как описано выше.

    1. Если “сюда” – это комментарии, то сюда и не можно и не нужно помещать ваш код.
      Эти комментарии не для того!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *