9 / 9 / 7
Регистрация: 20.05.2012
Сообщений: 101
1

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

31.01.2014, 10:20. Показов 2466. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вывести на печать все пятизначные числа,в которых имеются цифры 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;
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2014, 10:20
Ответы с готовыми решениями:

Цикл вывода диапазона данных
Не могу понять почему не выводит минимальное значение, хотя когда тип меняю на char или на short...

Getch() и цикл вывода меню вместе
Я хочу чтобы во время ожидания ввода (любого, не обязательно getch, но он, вроде, лучше всего...

Программа на цикл for (как добиться вывода на экран?)
Программа на цикл for(помогите добиться вывода на экран), повторять в цикле нужно вот это...

Цикл для вывода min чисел в одномерный массив
Цикл для вывода min чисел в одномерный массив

10
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
0
33 / 28 / 9
Регистрация: 13.09.2013
Сообщений: 250
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;
    }
1
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;
    }
0
33 / 28 / 9
Регистрация: 13.09.2013
Сообщений: 250
31.01.2014, 10:46 5
sktm, у нас с тобой не совсем правильные варианты, как не странно...
И в твоем, и в моем случае число, например 10032 не выводится...
0
0 / 0 / 1
Регистрация: 30.01.2014
Сообщений: 11
31.01.2014, 10:55 6
Xopecc, у меня выводит, я проверил
0
33 / 28 / 9
Регистрация: 13.09.2013
Сообщений: 250
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, во второй раз показал... Что бы это могло значить?
0
9 / 9 / 7
Регистрация: 20.05.2012
Сообщений: 101
31.01.2014, 11:03  [ТС] 8
Господа! Спасибо Вам за ответы! Но вы наверное поняли неправильно:
"Вывести на печать все пятизначные числа,в которых имеются цифры 3 и 8"
То есть, например 10308, 10803 и тп
0
33 / 28 / 9
Регистрация: 13.09.2013
Сообщений: 250
31.01.2014, 11:06 9
Лучший ответ Сообщение было отмечено Harmonster как решение

Решение

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
&&
0
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;
    }
0
Xopecc
31.01.2014, 11:10     Цикл вывода пятизначных цифр
  #11

Не по теме:

sktm, я быстрей :D

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2014, 11:10

Как преобразовать цикл для вывода сотрудников по отделам
#include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;string.h&gt; #include &lt;windows.h&gt; #include...

Цикл вычисления и вывода первых 15 членов последовательности и их суммы
Помогите, пожалуйста! Нужно: составить алгоритм и программу вычисления и вывода первых 15...

Цикл: Написать программу вывода таблицы через 1 градус в 3 столбца
Написать программу вывода таблицы через 1 градус в 3 столбца (х изменяется от 0 до альфа). Альфа,...

Не получается дописать программу вывода слов без цифр
Добрый вечер сорумчани! Помогите пожалуйста дописать программу. Есть строчка с словами, нужно...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru