Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
#1

Цикл с четными и нечетными числами - C++

27.11.2011, 11:10. Просмотров 1625. Ответов 17
Метки нет (Все метки)

как мне сделать цикл, желательно for, который бы перебирал цифры от 0 до 10, и если цифра четная, запускал один вложенный цикл, а в другом случае второй вложенный цикл?
пробовал внутри цикла условие i%2=0, но почему то либо не работает, либо зависает)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2011, 11:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Цикл с четными и нечетными числами (C++):

Заполнить массив чередующимися четными и нечетными числами - C++
Необходимо заполнить массив чередующимися четными и нечетными.В коде есть где то ошибка,массив выводит какой-то бредовый.Прошу помощи,что...

Вывести треугольник с чередующимися четными и нечетными числами - C++
Подскажите пожалуйста как делать задачи: 1.Ввести натуральное число N . Вывести треугольник, содержащий N строк с чередующимися четными...

Из 1 массива сделать 2 с четными и нечетными элементами - C++
Задан массив с количеством элементов N Сформировать два массива в первый включить элементы исходного массива с четными номерами а во второй...

Увеличить элементы массива с четными индексами на 1, а с нечетными - на 2 - C++
Доброго всем времени суток! Возникли затруднения с парой задач на массивы. 1. В одномерном массиве увеличить элементы с четными...

Определить, являются ли функции четными или нечетными - C++
помогите решить плиз задачу!!!!!!! Дано три функции у1=х*х*х;у2 = х*х*х+1и у3=1/1+х*х Определить, являются ли эти функции четными или...

Вывести элементы массива с четными/нечетными индексами - C++
3. Дан массив размера N. Вывести вначале его элементы с четными1|нечетными2 индексами, а затем — с нечетными1|четными2.

17
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
27.11.2011, 11:17 #2
Цитата Сообщение от z-z Посмотреть сообщение
i%2=0
C++
1
i % 2 == 0
0
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
27.11.2011, 11:27  [ТС] #3
greshnikk, я это пробовал. вот код, может скажете, где ошибка
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
for (var iy:int = 0; iy <10; iy++)
{
    if(iy % 2 == 0)
    {
        for (var ix:int = 0; ix <10; ix++)
        {
            var kletka:zzz = new zzz();
            kletka.x = 20 * ix;
            kletka.y = 20 * iy;
            addChild(kletka);
        }
    } else
    
    {
        for (var ix:int = 0; ix <10; ix++)
        {
            var kletka:zzz = new zzz();
            kletka.x = 20 * ix+30;
            kletka.y = 20 * iy+30;
            addChild(kletka);
        }
    }
 
}
0
Krasti
27 / 27 / 3
Регистрация: 07.11.2010
Сообщений: 140
27.11.2011, 11:36 #4
Цитата Сообщение от z-z Посмотреть сообщение
var iy:int
Это из паскаля что ли объявление? Или в С такое тоже работает? Ни разу не встречал )))
0
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
27.11.2011, 11:37  [ТС] #5
Krasti, это фообще ActionScript из флеша)) просто циклы мне из сипипи знакомы, поэтому здесь спросил, да и тут из флеша нет ничего)
0
Диман56
22 / 22 / 0
Регистрация: 07.11.2011
Сообщений: 154
27.11.2011, 11:40 #6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
main()
{
int i,j;
for (i=0;i<10;i++)
{
if (i%2==0)
{
for(j=0;j<10;j++)
{
//делаете,что надо
}
}
else
{
for (j=0;j<10;j++)
{
//делаете, что надо
}
}
}
}
0
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
27.11.2011, 11:43 #7

Не по теме:

О, узнаю программирование во Flash, а точнее AS.



Ошибки в вход в цикл нету. Скорее всего, проблема в внутренней реализацией. Насколько я понял, zzz наследуется от Object. Проверьте реализацию конструктора.
Советую запустить с отладчиком и проверить что у Вас в коде происходит.
0
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
27.11.2011, 11:47  [ТС] #8
greshnikk, не совсем понял про реализацию)) тут вот что, если взять отдельный цикл такой
C
1
2
3
4
5
6
7
8
9
10
for (var iy:int = 0; iy <10; iy++)
{
    for (var ix:int = 0; ix <10; ix++)
        {
            var kletka:zzz = new zzz();
            kletka.x = 20 * ix;
            kletka.y = 20 * iy;
            addChild(kletka);
        }
}
то этот код работает нормально, он рисует объекты kletka в виде матрицы 10х10, но я хочу, чтоб при четных iy рисовалось по одному циклу, при нечетных - по другому, поэтому замутил этот код)
0
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
27.11.2011, 11:56 #9
1. Почему не хотите воспользоваться отладчиком и посмотреть что происходит у Вас в программе ?
2. Попробуйте для начала сделать так:
ActionScript 3
1
2
3
4
for (var iy:int = 0; iy <10; iy++)
{
trace(iy%2)
}
Грубый вариант отладчика, так сказать.
0
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
27.11.2011, 12:03  [ТС] #10
greshnikk, то, что вы предложили, выводит 0101010101. а отладчик, я так понял это сама прога, в которой код пишется)) он выводит ошибку 1151 из перечисленных здесь http://help.adobe.com/ru_RU/FlashPla...lerErrors.html
то есть если переменые разного типа, но у меня вроде одного типа переменные)
0
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
27.11.2011, 12:11 #11
Цитата Сообщение от z-z Посмотреть сообщение
greshnikkто есть если переменые разного типа, но у меня вроде одного типа переменные)
Елки-палки, ну конечно он будет писать что переменные разного типа. Этим c++ всю голову мне заморочили. Надо было ведь создавать в этой теме. Какие по Вашему параметры принимает оператор взятия остатка ? Если Вы думаете, что int, то ошибаетесь. Он принимает значения Number. Замените тип int на Number, посмотрим что получится.
Вот из-за таких тонкостей и надо создавать тему в соответствующей ветке. С++ и AS это совсем не одно и тоже.
0
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
27.11.2011, 12:22  [ТС] #12
greshnikk, я тоже пожалел, что здесь создал тему, ведь первоначально тупо про цикл хотел спросить)) изменил на Number, теперь выдает ошибку
1084: Синтаксическая ошибка: rightparen перед colon.
в инете нормальной формулировки не нашел) и уже запутался сам, код весь такой должен быть?
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
for (var iy:Number = 0; iy <10; iy++)
{
        if(iy:Number % 2 == 0)
        {
                for (var ix:Number = 0; ix <10; ix++)
                {
                        var kletka:zzz = new zzz();
                        kletka.x = 20 * ix;
                        //kletka.y = 20 * iy;
                        addChild(kletka);
                }
        } else
        
        {
                for (var ix:Number = 0; ix <10; ix++)
                {
                        var kletka:zzz = new zzz();
                        kletka.x = 20 * ix+30;
                        //kletka.y = 20 * iy+30;
                        addChild(kletka);
                }
        }
 
}
две строки закоментил чтобы рисовалась только одна строка матрицы
0
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
27.11.2011, 12:25 #13
Цитата Сообщение от z-z Посмотреть сообщение
ActionScript 3
1
(iy:Number % 2 == 0)
После iy не надо использовать :Number.

По поводу отладчика - установите проект с Release на Debug (если такой не стоит)(Расположено вверху, на панели инструментов) и поставьте точку останова на нужный код (Слева от кода надо щелкнуть мышкой, появится красное пятнышко). Запустите на исполнение и программа откроется в режиме отладки, где можно шаг за шагом проследить поведение программы.
0
z-z
169 / 168 / 30
Регистрация: 22.06.2011
Сообщений: 980
27.11.2011, 12:41  [ТС] #14
неа, вернулась предыдущая ошибка про конфликт
Монтажный кадр 1, слой "Слой 1", кадр 1, строка 16 1151: Конфликт с определением ix в пространстве имен internal.
Монтажный кадр 1, слой "Слой 1", кадр 1, строка 18 1151: Конфликт с определением kletka в пространстве имен internal.
может он оба цикла сразу читает и поэтому путается?))

Добавлено через 13 минут
попробовал во втором цикле вместо ix и kletka другие переменные, но теперь просто второй цикл не выполняется, или его не видно)
0
greshnikk
31 / 31 / 0
Регистрация: 05.11.2008
Сообщений: 162
27.11.2011, 12:49 #15
1. Что у Вас с отладчиком ? Получилось запустить ? Потому что это очень важный инструмент программирования сильно облегчающий обнаружение ошибки.
2. Попробуйте после первого
ActionScript 3
1
for (var ix:Number = 0; ix <10; ix++)
поставить
ActionScript 3
1
 trace ("1" + iy%2)
, а после второго
ActionScript 3
1
trace("2" + iy%2)
. Цель - узнать, заходит ли программа в первый цикл все 10 раз, или же только 5 раз, а вторые 5 раз где-то теряются.
0
27.11.2011, 12:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2011, 12:49
Привет! Вот еще темы с ответами:

Определить являются ли эти функции четными или нечетными - C++
Дано три функции у1=х*х*х;у2 = х*х*х+1и у3=1/1+х*х Определить, являются ли эти функции четными или нечетными ( без bool и функций )

Найти разницу сумм элементов с четными и нечетными индексами - C++
Написать программу решения задачи с помощью несколько функций. Значения элементов массива вычислить в отдельной функции по формуле из...

Найти разницу сумм элементов с четными и нечетными индексами - C++
Написать программу решения задачи с помощью несколько функций. Значения элементов массива вычислить в отдельной функции по формуле из...

Поменять местами элементы массива с четными и нечетными индексами - C++
//Дан массив целых чисел. Воспользовавшись указателями, //поменяйте местами элементы массива с четными и нечетными индексами //(т.е. те...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru