Решаем задачи Абрамян на C. Array24

Array24. Дан целочисленный массив размера $$N$$, не содержащий одинаковых чисел. Проверить, образуют ли его элементы арифметическую прогрессию (см. задание Array3). Если образуют, то вывести разность прогрессии, если нет — вывести $$0$$.

Решение, редакция vombat:

Другие задачи из раздела Array можно посмотреть здесь.

Комментарии:

Комментарии 5

  • const int array_size = 5;
    int array[array_size] = { 10, 12, 14, 16, 18 };
    bool progress = true;

    int d = array[1] — array[0];

    for (int i = 2; i < array_size; i++)
    {
    if (array[i] — array[i — 1] != d)
    {
    progress = false;
    break;
    }
    }

    if (!progress) cout << 0 << endl;
    else cout << d << endl;

  • Антон, возможно имеет смысл досрочно завершить второй цикл (сократить количество итераций), как только очередной элемент прерывает прогрессию:

    • Можно, но я не люблю break в for`е. И я бы тогда заменял это всё на while.

      • Совершенно не обязательно использовать break, можно просто немного изменить условие завершения цикла.
        Было:

        Стало:

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

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