Вопрос № 150892: Приветствую вас эксперты!!! Вот такую вот программу нужно написать: для вводимого с клавиатуры числа определить сколько раз подряд оно делится без остатка на цифры от 2 до 9. Помогите с решением, заранее благодарен!!!...
Вопрос № 150914: Здравствуйте, товарищи. Такой вопрос: есть ли в С++ (в классе fstream) <b>(НЕ В С!!!)</b> есть функция для доступа (записи/чтения) к произвольной строке в файле, например *.txt.
В общем ситуация такая: мне нужно случайно-сгенерированное чис...Вопрос № 150956: Здравствуйте уважаемые эксперты! Подскажите, пожалуйста, как организовать таймер в с++ под linux (gentoo). ...Вопрос № 151019: привет всем! помогите!!! 1.задание. Дано натуральное число n. Определить, кратна ли числу k сумма первой и последней цифры этого числа. 2.задание. Дано натуральное число n
. Поменять порядок цифр на обратный и сравнить полученное чис-ло с ...
Вопрос № 150.892
Приветствую вас эксперты!!! Вот такую вот программу нужно написать: для вводимого с клавиатуры числа определить сколько раз подряд оно делится без остатка на цифры от 2 до 9. Помогите с решением, заранее благодарен!!!
Отвечает: Verena
Здравствуйте, Баженов Павел Андреевич! Задача решается очень просто. Число, введённое с клавиатуры, необходимо переписать в дополнительную переменную и, не портя исходное значение, делить его с присвоением на нужную цифру в цикле, условием которого будет деление без остатка. Поскольку цифр, на которые надо делить у нас много и идут они по порядку, используем в их качестве счётчик цикла for. Число 0 - особый случай, оно делится на любое другое число без остатка бесконечное число раз. Поэтому проверим введённое
число на равенство нулю сразу при вводе. Код может выглядеть, например, так:
Код:
cout << "Vvedite chislo: "; //Ввод int k, c, b; cin >> k; if (k==0) { //Проверка на 0
cout << "0 delitsia na luboe chislo beskonechnoe chislo raz"; return 0; } for (int i=2; i<=9; i++) { //Цикл по цифрам c = 0; //Счётчик числа делений b = k; //Переменная, которую будем "портить" while (b%i==0) {b/=i; c++;} //Цикл для деления cout << i << ": " << c << endl; //Вывод
результата } _getch();
Этот код будет работать в VS 2005 при условии подключения хидеров <iostream> и <conio.h>. Удачи!
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Практикант)
Ответ отправлен: 19.11.2008, 01:31
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 235922 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 150.914
Здравствуйте, товарищи.
Такой вопрос: есть ли в С++ (в классе fstream) (НЕ В С!!!) есть функция для доступа (записи/чтения) к произвольной строке в файле, например *.txt. В общем ситуация такая: мне нужно случайно-сгенерированное число (например, 218) записать на 218 строку.
Если нет ничего, напрямую отвечающего этим нуждам, то что тогда можно придумать (чтобы данные в окрестности этой строки не перезаписывались при записи).
Отвечает: Dr_Andrew
Здравствуйте, Косьянов Игорь Олегович! Для работы с файлами произвольного доступа в C++ существуют функции позиционирования для записи (seekp) и записи (write), а также позиционирования для чтения (seekg) и чтения (read). Например, нижеследующий код
означает: установить позицию для записи в n-ный байт от начала файла filename и записать значение переменной t с размером sizeof(t) байтов, начиная от позиции n вперёд. Однако в Вашем случае удобнее всего манипулировать с вектором строк (vector<string>) с последующим его сохранением в файл. При этом изменённый элемент вектора (строка) при сохранении в файл будет записан в заданной позиции, а соседние данные (э
лементы) не изменятся. Подробнее - см. в приложении.
Приложение:
Ответ отправил: Dr_Andrew (статус: Студент)
Ответ отправлен: 18.11.2008, 19:45
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 235884 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 150.956
Здравствуйте уважаемые эксперты! Подскажите, пожалуйста, как организовать таймер в с++ под linux (gentoo).
Отправлен: 18.11.2008, 16:18
Вопрос задал: inven (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Хватов Сергей
Здравствуйте, inven!
Во всех linux это делается одинаково.
Если вам надо просто задержать исполнение, то sleep() или usleep()
Если вам надо что-либо исполнить через некоторое время, то с помощью signal() устанавливаете callback на SIGALARM, а далее - alarm() или setitimer(), только на этом пути граблей будет много. Если у вас в основе программы лежит event loop на select(), то у select() используйте последний параметр.
Все упомянутые мной функции на самом деле системные вызовы,
и могут использоваться как из C так из C++.
Если вы используете какую-либо высокоуровневую библиотеку, например Qt, то в них есть свои способы. Ищите в документации или уточняйте что используете.
Ответ отправил: Хватов Сергей (статус: Практикант)
Ответ отправлен: 18.11.2008, 16:46
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 235866 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Вопрос № 151.019
привет всем! помогите!!! 1.задание. Дано натуральное число n. Определить, кратна ли числу k сумма первой и последней цифры этого числа. 2.задание. Дано натуральное число n. Поменять порядок цифр на обратный и сравнить полученное чис-ло с исходным.
Приложение:
Отправлен: 19.11.2008, 00:26
Вопрос задала: Tigr05 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Mihail Yarlykov
Здравствуйте, Tigr05! Обе программы в приложении... :)
Приложение:
--------- Нет ничего невозможного!
Ответ отправил: Mihail Yarlykov (статус: 5-й класс)
Ответ отправлен: 19.11.2008, 13:12
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 235983 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.