Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/88: Рейтинг темы: голосов - 88, средняя оценка - 4.58
 Аватар для jefanovspa
0 / 0 / 0
Регистрация: 09.09.2016
Сообщений: 9

Используя цикл, вывести ряд чисел

04.01.2017, 01:50. Показов 17415. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста, полазил на форуме и не нашел похожего. Используя цикл нужно вывести ряд чисел
a) 1 7 13 19 25 31 37 43
b) 1 -7 13 -19 25 -31 37 -43
c) 1 7 -13 -19 25 31 -37 -43

a пример получился, вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main()
 
{
    cout<<"-------A-------"<<endl;
    for (int i = 1; i < 43; i+=6)
    {
        cout << i << endl;
    }
 
    system("pause>>nul");
    return 0;
}
Как сделать b? За ранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.01.2017, 01:50
Ответы с готовыми решениями:

Вывести фрагмент строки используя цикл for
есть условно говоря вот такой код #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { string str...

Введены 2 числа,программа находит наименьшие и выводит ряд натуральных чисел.Цикл
В этот код надо встроить цикл,который бы выводил ряд натуральных чисел из минимального прибавляя по 1. К примеру:Ввели х=15 y=20 ....

Используя цикл for вычислить и вывести на экран 1+2+4+8+.+256
Доброго времени суток! Помогите решить задачу, напишите программу которая с помощью цикла for вычисляет и выводит на экран 1+2+4+8+...+256....

15
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
04.01.2017, 01:52
Цитата Сообщение от jefanovspa Посмотреть сообщение
Как сделать b?
Найти закономерность.
0
 Аватар для jefanovspa
0 / 0 / 0
Регистрация: 09.09.2016
Сообщений: 9
04.01.2017, 01:54  [ТС]
Я понимаю что в б) каждое второе число с минусом, а в с) через два, но как это написать?
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
04.01.2017, 02:01
jefanovspa, каждый нечётный элемент - положительный, а чётный - отрицательный. Значит надо проверять чётность. Чётные умножать на -1.

Добавлено через 24 секунды
jefanovspa, сейчас, напишу.

Добавлено через 5 минут
jefanovspa, вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int main()
{
    std::cout << "-------B-------\n";
    for ( int i = 1, j = 0; i < 43; i+=6, ++j )
    {
        if ( j % 2 )
            std::cout << -i << "\n";
        else
            std::cout << i << "\n";
    }
 
    return 0;
}
0
 Аватар для jefanovspa
0 / 0 / 0
Регистрация: 09.09.2016
Сообщений: 9
04.01.2017, 02:05  [ТС]
Цитата Сообщение от gru74ik Посмотреть сообщение
( j % 2 )
j это позиция ? а j % 2 - каждые 2 позиции ?
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
04.01.2017, 02:09
jefanovspa, это остаток от деления. Делим j на 2, используя деление с остатком. Если в остатке ноль (j - чётное число), то в теле ифа false, значит переходим в ветку else. Если в остатке не ноль (j - нечётное число), значит в теле оператора if получается true, значит выполняется ветка if.
0
 Аватар для jefanovspa
0 / 0 / 0
Регистрация: 09.09.2016
Сообщений: 9
04.01.2017, 02:30  [ТС]
Цитата Сообщение от gru74ik Посмотреть сообщение
сейчас, напишу.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
using namespace std;
 
int main()
 
{
    cout<<"-------A-------"<<endl;
    for (int i = 1; i < 43; i+=6)
    {
        cout << i << endl;
    }
//----------------------------------------------------------
    cout << "-------B-------"<<endl;
    for ( int i = 1, j = 0; i < 43; i+=6, ++j )
    {
        if ( j % 2 )
            cout << -i << "\n";
        else
            cout << i << "\n";
    }
 //------------------------------------------------------
     cout << "-------C-------"<<endl;
    for ( int i = 1; i < 43; i+=6)
    
    
        if ( i == 13 ) {
            cout << -i << "\n";
        }
        else if ( i == 19 ){
            cout << -i << "\n";
        }
        else if ( i == 37 ){
            cout << -i << "\n";
        }
        else if ( i == 43 ){
            cout << -i << "\n";
        }
        else {
            cout << i << "\n";
        }
    
            
    
    system("pause>>nul");
    return 0;
}
Сделал 3, возникла проблема, не выводит число 43.. В чем может быть проблема?
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
04.01.2017, 02:48
jefanovspa, уж тогда лучше так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main()
{
    std::cout << "-------C-------\n";
    for ( int i = 1, j = 0; i <= 43; i+=6, ++j )
    {
        if ( j <= 1 )
        {
            std::cout << i << " ";
        }
        else
        {
            std::cout << -i << " ";
            if ( j == 3 )
                j = -1;
        }
    }
 
    return 0;
}
Добавлено через 6 минут
jefanovspa, вот все три:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
 
int main()
{
    std::cout << "------------A------------\n";
    for (int i = 1; i <= 43; i+=6)
    {
        std::cout << i << " ";
    }
 
    std::cout << "\n\n------------B------------\n";
    for ( int i = 1, j = 0; i <= 43; i+=6, ++j )
    {
        if ( j % 2 )
            std::cout << -i << " ";
        else
            std::cout << i << " ";
    }
 
    std::cout << "\n\n------------C------------\n";
    for ( int i = 1, j = 0; i <= 43; i+=6, ++j )
    {
        if ( j <= 1 )
        {
            std::cout << i << " ";
        }
        else
        {
            std::cout << -i << " ";
            if ( j == 3 )
                j = -1;
        }
    }
 
    return 0;
}
0
 Аватар для jefanovspa
0 / 0 / 0
Регистрация: 09.09.2016
Сообщений: 9
04.01.2017, 03:29  [ТС]
Цитата Сообщение от gru74ik Посмотреть сообщение
C++
1
2
if ( j == 3 )
    j = -1;
можете объяснить эти 2 строки
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
04.01.2017, 03:33
jefanovspa, что Вам код говорит?
0
 Аватар для jefanovspa
0 / 0 / 0
Регистрация: 09.09.2016
Сообщений: 9
04.01.2017, 03:40  [ТС]
gru74ik, если j меньше или равно 1, то положительное. Если j приравнивается к 3 или равно -1 то отрицательное.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
04.01.2017, 03:59
jefanovspa, ну да! С чего бы это вдруг? Внимательнее читайте код:
C++
1
2
3
4
5
6
7
8
9
10
11
        if ( j <= 1 ) // если j меньше или равно 1, то
        {   // вывести на экран значение переменной i
            std::cout << i << " ";
        }
        else // иначе
        {   // вывести на экран значение переменной i со знаком минус
            std::cout << -i << " ";
            if ( j == 3 ) // а если j равно 3, то
                j = -1; // присвоить переменной j значение -1
        }
        // а в конце цикла инкремент переменной j (и значит j уже равна нулю)
Добавлено через 5 минут
Таким образом, у нас получается, когда j равна нулю или единице, у нас положительные числа выводятся. А когда j равна 2 или 3, отрицательные. А как только j становится равна 3, мы её приравниваем к -1. А в конце каждого витка у нас j инкрементируется (увеличивается на единицу). Инкремент переменной j выглядит вот так:
C++
1
++j
Вон он (инкремент переменной j) в круглых скобках цикла for:
C++
1
for ( int i = 1, j = 0; i <= 43; i+=6, ++j )
Я сперва обнулял j (забыл про инкремент на каждом новом витке), и никак в толк не мог взять, почему же результат немного не такой, как надо. А потом понял - если обнулять, на новом витке-то единица инкрементом добавится. А значит надо не обнулять, а приравнять к -1, чтобы действие инкремента компенсировать.
0
 Аватар для jefanovspa
0 / 0 / 0
Регистрация: 09.09.2016
Сообщений: 9
04.01.2017, 04:00  [ТС]
gru74ik, благодарю, буду пробовать разные примеры что бы закрепить.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
04.01.2017, 04:06
jefanovspa, чтобы Вам понятнее было, можно так написать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
 
int main()
{
    std::cout << "------------A------------\n";
    for (int i = 1; i <= 43; i+=6)
    {
        std::cout << i << " ";
    }
 
    std::cout << "\n\n------------B------------\n";
    for ( int i = 1, j = 0; i <= 43; i+=6, ++j )
    {
        if ( j % 2 )
            std::cout << -i << " ";
        else
            std::cout << i << " ";
    }
 
    std::cout << "\n\n------------C------------\n";
    for ( int i = 1, j = 0; i <= 43; i+=6 )
    {
        if ( j == 0 || j == 1 )
        {
            std::cout << i << " ";
            ++j;
        }
        else if ( j == 2 )
        {
            std::cout << -i << " ";
            ++j;
        }
        else if ( j == 3 )
        {
            std::cout << -i << " ";
            j = 0;
        }
    }
 
    return 0;
}
0
 Аватар для jefanovspa
0 / 0 / 0
Регистрация: 09.09.2016
Сообщений: 9
04.01.2017, 04:12  [ТС]
gru74ik, спасибо!
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
04.01.2017, 04:15
jefanovspa, несколько циклов распишите себе на бумажке по порядку:
виток 1: происходит то-то и то-то
виток 2: происходит то-то и то-то
виток 3: происходит то-то и то-то

и постепенно начнёте понимать, что там (в циклах) происходит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.01.2017, 04:15
Помогаю со студенческими работами здесь

Написать, используя цикл for, ввод с клавиатуры 10 чисел
Написать, используя цикл for, ввод с клавиатуры 10 чисел. Цикл может прерваться, если пользователь ввел любое отрицательное число.

Используя один цикл, найти сумму чисел
Парни, помогите новичку. Проверьте пожалуйста соответствует ли решение задачи условию и верно ли решение. Если что исправьте как надо. ...

Используя один цикл, вывести все целые степени числа A от 1 до N.
Дано вещественное число A и целое число N (&gt; 0). Используя один цикл, вывести все целые степени числа A от 1 до N. cherez for!!!please...

Нужно найти произведение двух чисел A и B, не используя умножение. (Цикл)
Нужно найти произведение двух чисел A и B, не используя умножение. Сделать это через цикл. Использовать только операторы for или while, или...

Вывести ромб (пустой внутри) символами *, используя всего один цикл for
Вывести ромб (пустой внутри) символами *, используя всего один цикл for. На вход подаётся число: сторона квадрата (ромб рисуется в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru