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

Цикл вывода пятизначных цифр - C++

Восстановить пароль Регистрация
 
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
31.01.2014, 10:20     Цикл вывода пятизначных цифр #1
Вывести на печать все пятизначные числа,в которых имеются цифры 3 и 8

Но цикл работает неправильно. Помогите, пожалуйста!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream> 
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    for (int i = 10000; i <= 99999; i++)
    {
        if (if ((((i / 10000) == 3) || ((i / 1000) == 3) || ((i / 100) == 3) || ((i / 10) == 3)) || (((i / 10000) == 8) || ((i / 1000) == 8) || ((i / 100) == 8) || ((i / 10) == 8))))
            cout << i << endl;
    }
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sktm
0 / 0 / 1
Регистрация: 30.01.2014
Сообщений: 11
31.01.2014, 10:27     Цикл вывода пятизначных цифр #2
Чтобы получить первую цифру нужно i/10000, вторую - i/1000%10, третью - i/100%10, четвертую - i/10%10, пятую i%10
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
31.01.2014, 10:33     Цикл вывода пятизначных цифр #3
Harmonster, в твоем коде пару ошибок:
во-первых, непонятное использование двойного логического оператора if
во-вторых, нужно использовать деление с остатком(оператор %)
Вот готовый код:
C++
1
2
3
4
5
for (int i = 10000; i <= 99999; i++)
    {
        if ((((i % 10000) == 3) || ((i % 1000) == 3) || ((i % 100) == 3) || ((i % 10) == 3)) || (((i % 10000) == 8) || ((i % 1000) == 8) || ((i % 100) == 8) || ((i % 10) == 8)))
            cout << i << endl;
    }
sktm
0 / 0 / 1
Регистрация: 30.01.2014
Сообщений: 11
31.01.2014, 10:42     Цикл вывода пятизначных цифр #4
C++
1
2
3
4
5
for (int i = 10000; i <= 99999; i++)
    {
        if (i / 10000 == 3 || i / 1000 % 10 == 3 || i / 100 % 10 == 3 || i / 10 % 10 == 3 || i % 10 == 3  || i / 10000 == 8 || i / 1000 % 10 == 8 || i / 100 % 10 == 8 || i / 10 % 10 == 8 || i % 10 == 8)
            cout << i << endl;
    }
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
31.01.2014, 10:46     Цикл вывода пятизначных цифр #5
sktm, у нас с тобой не совсем правильные варианты, как не странно...
И в твоем, и в моем случае число, например 10032 не выводится...
sktm
0 / 0 / 1
Регистрация: 30.01.2014
Сообщений: 11
31.01.2014, 10:55     Цикл вывода пятизначных цифр #6
Xopecc, у меня выводит, я проверил
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
31.01.2014, 11:02     Цикл вывода пятизначных цифр #7
sktm, я твой код проверил на 10032, не выводит его!!!
Harmonster,Вот переделанный код(все работает):
C++
1
2
3
4
5
for(int i(10000); i<=99999; i++){
        
        if((i%10 == 3) || (i%100/10 == 3) || (i%1000/100 == 3) || (i%10000/1000 == 3) || (i/10000 == 3) || (i%10 == 8) || (i%100/10 == 8) || (i%1000/100 == 8) || (i%10000/1000 == 8) || (i/10000 == 8))
         cout<<i<<endl;
    }
Добавлено через 5 минут
sktm, я отказываюсь понимать дебаггер MSVS 2012, в первый раз в твоем коде не показал число 10032, во второй раз показал... Что бы это могло значить?
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
31.01.2014, 11:03  [ТС]     Цикл вывода пятизначных цифр #8
Господа! Спасибо Вам за ответы! Но вы наверное поняли неправильно:
"Вывести на печать все пятизначные числа,в которых имеются цифры 3 и 8"
То есть, например 10308, 10803 и тп
Xopecc
33 / 28 / 2
Регистрация: 13.09.2013
Сообщений: 246
31.01.2014, 11:06     Цикл вывода пятизначных цифр #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Harmonster, Ничего сложного, берем мой код, и кое-что добавляем:
C++
1
2
3
4
5
for(int i(10000); i<=99999; i++){
        
        if(((i%10 == 3) || (i%100/10 == 3) || (i%1000/100 == 3) || (i%10000/1000 == 3) || (i/10000 == 3)) && ((i%10 == 8) || (i%100/10 == 8) || (i%1000/100 == 8) || (i%10000/1000 == 8) || (i/10000 == 8)))
         cout<<i<<endl;
    }
P.S. То есть мы сначала ищем цифру 3, а затем цифру 8 в числе, если оба присутствуют, то выводим число:
C++
1
&&
sktm
0 / 0 / 1
Регистрация: 30.01.2014
Сообщений: 11
31.01.2014, 11:08     Цикл вывода пятизначных цифр #10
Harmonster, тогда вот
C++
1
2
3
4
5
for(int i(10000); i<=99999; i++){
        
        if(((i%10 == 3) || (i%100/10 == 3) || (i%1000/100 == 3) || (i%10000/1000 == 3) || (i/10000 == 3)) && ((i%10 == 8) || (i%100/10 == 8) || (i%1000/100 == 8) || (i%10000/1000 == 8) || (i/10000 == 8)))
         cout<<i<<endl;
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2014, 11:10     Цикл вывода пятизначных цифр
Еще ссылки по теме:

Программа на цикл for (как добиться вывода на экран?) C++
Преобразовать массив цифр в строку для вывода на cout<< C++
C++ Как преобразовать цикл для вывода сотрудников по отделам

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

Или воспользуйтесь поиском по форуму:
Xopecc
31.01.2014, 11:10     Цикл вывода пятизначных цифр
  #11

Не по теме:

sktm, я быстрей

Yandex
Объявления
31.01.2014, 11:10     Цикл вывода пятизначных цифр
Ответ Создать тему
Опции темы

Текущее время: 23:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru