|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Программирование на С++ |
|
||||
|
|
Программирование на С++
|
|
Дизайнер Сообщения: 410 |
Народ, выручайте, нужно решить задачку
задача такая: Дано произвольное целое число n. Написать программу, которая разбивает число n на цифры и выводит их на экран; подсчитывает сколько цифр в числе n; находит сумму цифр числа n; меняет порядок цифр числа n на обратный. ... может есть какие-нибудь идеи как решить... Буду благодарен ![]() |
|
|
Отправлено: 15:45, 08-01-2003 |
|
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать Tanchenko AleXanDr
число делится по цифрам делением n/10 и взятием остатка n%10. |
|
------- Отправлено: 16:29, 08-01-2003 | #2 |
|
Дизайнер Сообщения: 410
|
Профиль | Отправить PM | Цитировать // vasketsov, спасибо... идею понял... щас попробую на практике
![]() |
|
Отправлено: 21:35, 08-01-2003 | #3 |
|
Старожил Сообщения: 225
|
Профиль | Отправить PM | Цитировать незнаю как на си, а на Паскале можно было бы перевести число в строку, а строка это массив, сколько в нем элементов определяется одной процедуркой, сложить по цифиркам это тоже просто, каждый символ в тип интежер и суммируй себе в какой-нибудь переменной, вывести задом наперед, так не с головы строки идти, а с последнего элемента...
ну в Паскале то точно можно так сделать |
|
------- Отправлено: 17:03, 09-01-2003 | #4 |
|
Lunich
Сообщения: n/a |
На С можно преобразовать целое в строку:
// char buffer[20] _itoa( n, buffer, 10 ); // а потом для каждого элемента полученной строки, отняв от него 0х30 получить его значение в int. Кол-во чисел: // slren( buffer ); // |
|
|
Отправлено: 22:44, 10-01-2003 | #5 |
|
Yagur
Сообщения: n/a |
Я преобразую число(iKod) в строку(c) так:
char c[5]; sprintf(c, "%d", iKod); |
|
Отправлено: 16:27, 23-01-2003 | #6 |
|
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать Yagur
а почему 5 а не 12 ? |
|
------- Отправлено: 17:13, 23-01-2003 | #7 |
|
Монголо-татар Сообщения: 117
|
Профиль | Сайт | Отправить PM | Цитировать Roman Go
Цитата:
сколько нужно ресурсов и процессорного времени для переводов туды сюды? что быстрее работа с текстом или числами? я по молодости, тоже был любитель стринга... щас меня от него воротит... там все функции и процедуры такие тяжелые... уж лучше как-нить по свойски... (это я ваще про всякие визуальные языки) |
|
|
------- Отправлено: 09:11, 24-01-2003 | #8 |
|
Дизайнер Сообщения: 410
|
Профиль | Отправить PM | Цитировать помогите решить еще одну задачу
![]() Пользователь вводит с клавиатуры арифметическое выражение (используемые операции только сложение и вычитание). Посчитать его значение. Если в выражении встречаются другие символы, выдать сообщение, что выражение введено не корректно. --------------------------------------------------------------------- насколько я понимаю , нужно значение строки преобразовать в число. Это делает вроде бы функция atoi, какие параметры она использует?Цитата:
Добавлено: Ork Yason как всегда флуд |
|
|
Отправлено: 22:36, 14-03-2003 | #9 |
|
редкий гость Сообщения: 1696
|
Профиль | Сайт | Отправить PM | Цитировать Tanchenko AleXanDr
Если без скобок выражение, то решается всё не просто, а очень просто (на голом C): int expression(char * expr)
{
int result;
char * c;
result = 0;
c = expr;
if(!isdigit(*c))
{
printf("Ошибочка вышла: \"...%s\"\n", c);
exit(1);
}
for(; isdigit(*c); ++c)
result = result * 10 + (c - '0');
switch(*c)
{
case 0:
return result;
case '+';
return result + expression(c + 1);
case '-';
return result - expression(c + 1);
default:
printf("Ошибочка вышла: \"...%s\"\n", c);
exit(1);
}
}
Цитата:
|
|
|
------- Отправлено: 23:08, 14-03-2003 | #10 |
|
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Программирование с TCP/IP. | Guest | Программирование и базы данных | 1 | 17-06-2004 09:43 | |
| Программирование | andy666 | Программирование и базы данных | 3 | 24-10-2003 22:17 | |
| Программирование | andy666 | Программирование и базы данных | 1 | 10-10-2003 19:52 | |
| Программирование на Яве | Guest | Программирование и базы данных | 2 | 05-10-2003 20:09 | |
| Программирование | LeXo | Программирование и базы данных | 10 | 11-10-2002 12:23 | |
|