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

Кому не трудно, нужна идея как сделать проще - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача на рекурсию http://www.cyberforum.ru/cpp-beginners/thread1036754.html
Здравствуйте. Имеется следующая задача: Разработать и реализовать алгоритм, на входе которого имеется выражение, а на выходе выражение в котором идентификаторы заменены на букву Т, а целые без...
C++ Сформировать матрицу по образцу Здравствуйте. Каким образом можно решить задачу? Даны действительные числа а1,а2... Получить: http://www.cyberforum.ru/cpp-beginners/thread1036743.html
Перегрузка операторов C++
Создать класс «Параллелепипед» для работы с графическим объектом и класс, позволяющий изменять местоположение объекта первого класса на экране. Для объектов первого класса выполните перегрузку...
C++ Задача на строки(С/С++)
Пользователь вводит отдельно строку и символ, необходимо показать на экран номер только последнего совпадения (нумерация с единицы). Помогите пожалуйста или хотя бы идею подкиньте.
C++ Переставить рядки матрицы относительно по возрастанию элементов второго столбца http://www.cyberforum.ru/cpp-beginners/thread1036715.html
Переставить рядки матрицы относительно по возрастанию элементов второго столбца
C++ Файловые потоки и операции Задача наверняка легкая для Вас, но мне просто необходима, жду Вашей помощи, заранее спасибо=)) Бинарный файл содержит записи с полями: дата и время ввода, наименование и числовой параметр.... подробнее

Показать сообщение отдельно
Гром
210 / 129 / 11
Регистрация: 20.03.2009
Сообщений: 1,103
Записей в блоге: 16
Завершенные тесты: 1
11.12.2013, 07:53
Кодом, пожалуй, нагляднее будет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const unsigned M = 10;
bool Is1toM(unsigned* arr)
{
bool Found[M] = { false };
for (unsigned i = 0; i < M; ++i)
 {
 unsigned val = arr[i] - 1;
 if (val < 0 || val >= M)   //Вообще-то unsigned не может быть меньше нуля, это для иллюстрации и на случай замены на signed
  return false;
 if (Found[val])
  return false;
 Found[val] = true;
 }
return true;
}
То есть для всех чисел от 1 до М у нас есть флаги в массиве, что данное число уже обнаружено при просмотре входного массива. Если элемент входного массива не есть число от 1 до М - фейл, если обнаруживаем второе вхождение - аналогично.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru