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

Задачи: циклы while, do while, вложенные циклы

Мы познакомились с циклами while и do while в C++ и с вложенными конструкциями в циклах. Займёмся решением задач.

1. Организовать беспрерывный ввод чисел с клавиатуры, пока пользователь не введёт 0. После ввода нуля, показать на экран количество чисел, которые были введены, их общую сумму и среднее арифметическое. Подсказка: необходимо объявить переменную-счетчик, которая будет считать количество введенных чисел, и переменную, которая будет накапливать общую сумму чисел.

2. Необходимо суммировать все нечётные целые числа в диапазоне, который введёт пользователь с клавиатуры.

3. Задача посложней. Нарисовать равнобедренный треугольник из символов ^. Высоту выбирает пользователь. Например: высота = 5, на экране

задачи вложенные циклы

173 thoughts on “Задачи: циклы while, do while, вложенные циклы

  1. #include

    using namespace std;

    int main()
    {
    setlocale(LC_ALL, “RUS”);
    int countNum = 0;
    int sum = 0;
    int avarage = 0;
    int number = 1;
    while(number != 0)
    {
    cout <> number;
    sum += number;
    countNum++;
    avarage += number / 2;
    if(number != 0)
    cout << "Чтобы остановить ввод, введите 0." << endl;
    }
    cout << "Количество чисел: " << countNum << endl;
    cout << "Общая сумма чисел: " << sum << endl;
    cout << "Средне арифметическое: " << avarage << endl;
    return 0;
    }

  2. Помогите решить 2 задачи
    1) ввести число. Получить другое число путём удаления цифр 0 и 1 сохранив порядок следования цифр. Пример(201304, результат 234)
    2) последовательно вводятся числа найти их произведение, ввод остановить если произведение стало равно 0.

    1. на сколько понимаю первая задача через ввод массива решается, а вторая любым циклом for или while.

      пример решения 2 задачи
      #include
      using namespace std;

      int main()
      {
      setlocale(LC_ALL, “rus”);
      int i,sum;
      while (sum != 0)
      {
      cout << "Введите число" <> i;
      sum = sum + i;
      cout << sum << endl;
      }
      cout << "Сумма чисел = " << sum << endl;
      return 0;
      }

      1. не знаю как сюда нормальные коменты писать (копипастом вместо скрипта фигня копируется)

      2. Здесь редактор комментариев не позволяет нормально вписывать код на C++.

  3. #include
    using namespace std;
    int main()
    {

    char ch;
    int height;
    cout<>height;
    cout<>ch;

    for (int i = 0; i= 0; j–)
    {
    cout << " ";
    }
    for (int j = 0; j < i+1+i; j++)
    {
    cout << ch;
    }

    cout << endl;

    }

    }

  4. Как в С++ написать код с циклом do while? *нарисовать треугольник и прямоугольник, чтобы внутри они были пустые

    1. Само действие “нарисовать” имеет отношение к графике, но не имеет почти никакого отношения к языку C++. Здесь всё зависит от того, что вы используете: от а). операционной системы (Windows, Linux, др.), б). от графической системы (библиотек) в которой вы хотите всё это написать (Qt, GTK+, wxWidget, MFC, или вообще псевдографика в терминале).
      Графика никак не есть составной частью C++ и его библиотек.
      Сама формулировка задачи так – является не корректной!

  5. все работает, но очень заморочено получилось. наверняка много лишнего есть. до вашего изящного, практичного и краткого решения мне далеко. пока новичок. но как никак сделал! ура!

    #include
    using namespace std;

    void main()
    {
    setlocale(LC_ALL, “ru”);
    int height;
    int a = 0;
    int c = 0;
    int f = 0;
    int x = 0;
    int z = 0;
    cout <> height;
    int d = height;
    do
    {
    if (a < height – 1)
    {
    do
    {
    cout << " ";
    c++;
    } while (c < height – 1);
    }
    x++;
    c = x;
    do
    {
    cout < 0)
    {
    do
    {
    cout < 0);
    }
    } while (d != height);
    cout << endl;
    z++;
    f = z;
    a++;
    } while (a < height);
    }

  6. #include
    #include
    using namespace std;
    void main()
    {
    setlocale(LC_ALL, “rus”);
    int n = 3;
    double *mass = new double[n];
    int i = 1,sum=0,ch=0,sred;
    mass[0] = 1;
    while (mass[i-1] != 0)
    {
    cout << "Введите " << i <> mass[i];
    sum = sum + mass[i];
    if(mass[i]!=0)
    ch = ch + 1;
    n++;
    i++;
    }
    sred = sum / ch;
    cout << "Среднее арифметическое из " << ch << " чисел = " << sred << " . Их общая сумма= " << sum << endl;
    delete mass;
    system("pause");
    }

  7. Тоже не смог увидеть закономерность в треугольнике и из-за этого лишний цикл и лишние переменные :|

    #include
    #include
    using namespace std;

    int main(int argc, char** argv)
    {
    int x;
    int n = 1;
    int num = 1;
    cout <> x;
    for (int i = 1; i < x; ++i)
    num = num + 2;
    while (x != 0)
    {
    for(int j=1; j < num; ++j)
    cout << " ";
    for(int i=0; i < n; ++i)
    cout << "^";
    cout << "\n";
    n = n + 2;
    num = num – 1;
    –x;
    }
    system ("pause");
    return 0;
    }

  8. Так как урок назывался “циклы while и do while” сделал 3-ю задачу с их помощью. Пришлось повозиться так как цикл for компактнее и удобнее для этого
    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, “rus”);

    int width = 1;
    int j = 1;
    int height = 0;
    int i = 1;
    int probel = 1;

    cout << "Введите высоту равноберенного треугольника" <> height;

    do {
    while (probel <= height – i)
    {
    cout << " ";
    probel++;
    }
    while (j <= width)
    {
    cout << "^";
    j++;

    }
    cout << endl;
    i++;
    width += 2;
    j = 1;
    probel = 1;
    } while (i <= height);

    system("pause");

    return 0;
    }

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

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