|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите пожайлуста со сложными циклами |
|
|
C/C++ - [решено] Помогите пожайлуста со сложными циклами
|
Новый участник Сообщения: 6 |
С клавиатуры вводится двузначное число, среди всех четырехзначных чисел вывести те, которые начинаются или заканчиваются этим числом.
Как мне сделать цикл что бы он проверял и 1-ю цифру, а не только 2-ю? вот моя программа(Я взял пока что числа поменьше): |
|
Отправлено: 13:42, 06-12-2013 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать nekitosiks, так, давай чуть назад и с азов.
Для того, чтобы тебя понимали, не поленись оформить код тегом CODE, # ---- Теперь рассказывай, что ты придумал? Своими словами. Вариант "Код хорошо документирован на языке С++" не подходит. У меня такое ощущение, что ты занимаешься глупостью. Или может не глупостью, но не в ту сторону. Это нормальный ход событий, каждый этим время от времени страдает. Сейчас спокойненько сядь, напиши, зачем тебе нужны сравнения 1ой, 2ой, и других цифр. Цитата:
---- Порядок изложения мыслей: Цель, задачи, как решаются, возникающие расхождения (ошибки), выводы. Цель: Полная постановка задачи. Задачи: Циклы, сравнения и т.п. Т.е. декомпозиция задачи на составляющие. Решения: Чётко "провязанное" решение каждой задачи Расхождения: Так же "провязанные" сложности в том или ином действии Выводы: a) Собственные рассуждения б) Привыкай делать выводы. Работы без выводов уходят в урну, просто без раздумий (да, возможно жестоко, но это так). |
|
------- Отправлено: 14:22, 06-12-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Сравнения 1-го и 2-го с вводимым числом мне нужно для нахождения подходящих чисел.
Если я введу число 7, то программа должна вывести: 17, 27,37,47,57,67,77,87,97,(эти числа получилось вывести) ну и 70,71,72,73,74,75,76,78,79(эти числа не получилось вывести) |
Отправлено: 15:35, 06-12-2013 | #3 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Цитата nekitosiks:
Если это необходимо "в процессе решения", то на данный момент этот шаг не обоснован. (читай "снимается с рассмотрения") Цитата nekitosiks:
![]() Без обид. Учись объяснять предпосылки и прогнозировать последствия. Старайся следовать предложенной схеме. Это в первую очередь тебе поможет привести мысли в порядок. Т.е. это не я тут такой вредный и спрашиваю какую-то околесицу, я помочь пытаюсь! ![]() |
||
------- Отправлено: 16:16, 06-12-2013 | #4 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Для большей ясности скину сами задания вместе с "теорией", которые нам задали. 2 курс программист.
Я сам не в восторге как нас учат... Задают нам по 4 задания, я остановился на сложных циклах 3 лабораторной 13 задание |
|
Отправлено: 16:40, 06-12-2013 | #5 |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать Деление на 10 является правильной идеей - в том коде, который закомментирован. В массиве из четырех элементов можно сохранять получившиеся значения. И в этом массиве искать значения из массива из двух элементов, в котором сохранены цифры двухзначного числа.
|
------- Отправлено: 16:41, 06-12-2013 | #6 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Цитата nekitosiks:
Допустим ввели число 27 Среди прочих 4-значных чисел есть: 1234, 3456, 2345, 2745, 4572, 2678, 7432 Что нужно вывести? Числа начинающиеся на 27 или начинающиеся и заканчивающиеся на 2? В итоге будет создан динамический массив array с размером равным количеству чисел в введённом числе и в этом массиве будет сохранено число поразрядно - 4357 Оперируя с этим массивом можете проверять первый и последний индексы. #include <iostream> using std::cout; using std::cin; using std::endl; // Функция расчитывающая количество чисел во введённом числе... int Rasriad(int enterNumber) { int n = enterNumber, x = 0; while (n != 0) { n /= 10; x++; } return x; } int main() { int enterNumber, lenght = 0, indexRas, decimal = 1, z; cout << "Enter Number: "; cin >> enterNumber; // Длина числа. lenght = Rasriad(enterNumber); int *array = new int [lenght]; // Создаём массив необходимой длины // С какого делителя будем начинать деление? for(int j = 1; j < lenght; j++) decimal *= 10; for(int i = 0; i < lenght; i++){ array[i] = enterNumber / decimal % 10; // Отрывание разрядов с первого числа по последнее и сохранение в массив decimal /= 10; } cin >> z; return 0; } //--------------------------- |
|
------- Последний раз редактировалось Drongo, 06-12-2013 в 17:49. Отправлено: 17:37, 06-12-2013 | #7 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Цитата Drongo:
К сожалению я до масивов не добрался, и не знаю что это |
|
Отправлено: 17:51, 06-12-2013 | #8 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать nekitosiks, Так если в условии прямо сказано, введено двухзначное число и нужно сравнить с четырёхзначным, что мешает сделать примитивно? Я там сравниваю с прямым числом 27 (переменная num), но это в качестве примера, вместо 27 можно поставить переменную с введённым.
#include <iostream> using namespace std; int main() { int const size = 10; // грубо говоря, размер массива int first, // 1-е совпадение в начале last, // 2-е совпадение в конце num = 27; // число с которым сравниваем int array[size] = {1234, 3456, 2345, 2745, 4572, 2700, 7432, 6657, 9327, 2727}; for(int i = 0; i < size; i++){ first = array[i] / 100; // на 100, потому что отрывать от четырёхзначных будет первые два числа last = array[i] % 100; // на 100, даёт остаток последние два числа, кроме целочисленного остатка в ноль if(first == num) // условно 27, сравниваем с введённым cout << "Array[" << i << "] = " << array[i] << " First = " << first << endl; if(last == num) // условно 27, сравниваем с введённым cout << "Array[" << i << "] = " << array[i] << " Last = " << last << endl; } cin >> last; } |
------- Отправлено: 19:01, 06-12-2013 | #9 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Вчера до форума не добрался ...
У меня другая мысль появилась. А зачем нам вообще ~9000 (1000 - 9999) сравнений, причем с двумя делениями в каждом цикле! Деление с т.з. процессора штука не простая. Если оптимизирующий компилятор догадается, то он объединит инструкции в одну, а если нет? Ответов у нас около 200 (грубо). Вида ХХСС и ССХХ Где CC -- заданная двухзначная константа, ХХ -- некая переменная часть числа. Нас не просят найти/сформировать массив/выбрать из заданного/и т.п. нас просят "вывести". И сделать соотв. два цикла 10-99 и подписать введенное числа либо спереди, либо с сзади. ---- nekitosiks, очень жаль, что предложенной схемой рассуждений вы так и не воспользовались. |
------- Отправлено: 17:32, 07-12-2013 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Помогите пожайлуста | drumnboy | Лечение систем от вредоносных программ | 1 | 24-09-2013 20:16 | |
[решено] Работа со строками и циклами | eus_deus | AutoIt | 15 | 12-09-2013 08:23 | |
HDD - Помогите пожайлуста | vasya_shelemba1996@vk | Накопители (SSD, HDD, USB Flash) | 2 | 08-03-2013 16:18 | |
C/C++ - [решено] c++ помогите разобраться с циклами | Cherterok | Программирование и базы данных | 17 | 19-12-2010 21:11 | |
C/C++ - Помогите с Циклами в dev cpp | VFRc | Программирование и базы данных | 2 | 23-03-2009 23:13 |
|