![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 26.09.2008
Сообщений: 2
|
![]()
Доброе время суток!
Мне нужно СРОЧНО выполнить задание в среде С++ ![]() Найти все числа, не превышающие 10000, в записи которых нет повторяющихся цифр. Буду безумно рада, если ко всему этому приложите еще и небольшие комментарии, т.к. я являюсь полным воплощением своего ника... НО ЭТО НЕ ОБЯЗАТЕЛЬНО, мне хотя бы программу... Может, кто-то приблизительно объяснит, как это делать... Заранее, спасибо тем, кто поможет! Последний раз редактировалось TrueTeapot; 26.09.2008 в 00:53. Причина: Лишь бы помогли, а то подумают, что обарзела совсем, комментарии ей подавай |
![]() |
![]() |
![]() |
#2 |
Регистрация: 24.09.2008
Сообщений: 4
|
![]()
Вот решение проблемы "тупо в лоб".
#include "stdafx.h" #include "stdio.h" #include "windows.h" #include "winbase.h" void FindNumbers(int iFirstNumber, int iLastNumber, int* numbers, int* iNumbersIndex) { char chBufIndex, ch; char buffer[6]; char chrs[10]; *iNumbersIndex = 0; for(; iFirstNumber <= iLastNumber; iFirstNumber++) { //цикл перебора чисел ZeroMemory(chrs, 10); //обнуляем буфер повторений sprintf(buffer, "%d", iFirstNumber); //конвертируем число в строку в десятичном виде и заносим в буфер for(chBufIndex = 0; true; chBufIndex++) { //цикл перебора if(buffer[chBufIndex]) { //если это не нуль-терминатор for(ch = 0; ch < 10; ch++) { //то цикл перебора буфера повторений if(chrs[ch] == 0) { //если достигли конца буфера повторений chrs[ch] = buffer[chBufIndex]; //заносим символ в буфер повторений break; //идем брать следующий символ из буфера } if(chrs[ch] == buffer[chBufIndex]) goto label0; //символ из строки (буфера) совпал с символом из буфера повторений => это число не подходит; выходим в конец первого цикла и берём следующее число } } else { // если это нуль-терминатор, а мы все еще не нашли повторений, значит их просто нет numbers[*iNumbersIndex] = iFirstNumber; //заносим число в буфер возврата (*iNumbersIndex)++; } } label0:; } } int main(int argc, char* argv[]) { int numbers[10000]; int iSize; FindNumbers(0, 10000, numbers, &iSize); return 0; } |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 26.09.2008
Сообщений: 2
|
![]()
Хвала Аллаху=)
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Консольное приложение | a_priori | Общие вопросы Delphi | 6 | 12.03.2008 08:33 |
Консольное приложение | eks-s | Общие вопросы Delphi | 17 | 25.01.2008 03:12 |
Консольное приложение и DLL | SunKnight | Общие вопросы Delphi | 1 | 16.12.2007 02:35 |
Консольное приложение | MAcK | Общие вопросы Delphi | 2 | 03.12.2006 18:28 |