Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2018, 11:20   #11
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Думаю, нормально будет. Ведь сумма чисел в разрядах и подразумевает негласно работу с изображением числа в виде строки цифр, потому что в самом числе унутре никаких "десятков", "сотен" нет, а есть только биты (я имею в виду компьютер). Об этом уже десятки раз шел разговор. А преобразовать цифру в число - одна машинная команда.
Другое дело, что поскольку задание учебное, то в нем нормальные решения выглядят ущербно там, где требуется умение почесать левой ногой правое ухо. Поэтому библиотечная sprintf будет встречена недовольным урчанием препода, видимо.
А че делать, коль число цифр нечетное ? Распилить среднюю цифру пополам ?

Последний раз редактировалось digitalis; 27.10.2018 в 11:23.
digitalis вне форума Ответить с цитированием
Старый 27.10.2018, 15:38   #12
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

NetSpace
Цитата:
геморройно будет: переводить числа в символы, чтоб потом разделить строку, чтобы потом перевести обратно символы в числа, чтобы сложить первую половину и вторую половину строки...
Геморрой это ...
Вы назовите мне язык программирования, который читает цифры с клавиатуры в двоичном виде.
Все п/п ввода-вывода работают с символами. При необходимости компилятор подставляет преобразование символов в число. Но это тогда, когда он знает тип переменной.
Так например работает любимый вами, и мной тоже, Бэйсик. Так работают и процедуры ввода-вывода в Pascal и Си.
А вот, например, в Python всё более честно.
Код:
x = input('Введите число') # x - строковый тип
Таким образом:
Вводим строку (преобразования нет).
Определяем половину длины строки:
Код:
int len = strlen(str) / 2;
В цикле:
Код:
int i;
int sum = 0;
for (i = 0; i <= len; i++)
{
   sum = sum + (int)str[i] - 48; // (int)str[i] - '0' - преобразование символа в цифру
}
К вопросу о нечётном числе цифр. В задании об этом ни слова, что позволяет понять, как не больше половины

PS: У меня нет С++ и отлаженный код выложить не могу.
Информацию о преобразовании символа в цифру взял из Сети.
Как это лучше на C++ не знаю.
Что по этому поводу думает препод? Так это его голова.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так, чтобы программа завершалась при вводе символа. Sinli Общие вопросы C/C++ 4 10.09.2018 16:18
Как сделать так, чтобы процесс повторялся до остатка последнего элемента массива и вывел все результаты. Программный код внутри Lime789456 Помощь студентам 1 07.12.2017 08:19
Как сделать чтобы Dataset без SQL считал себя не read-only ? delphicoding БД в Delphi 12 23.03.2012 22:22
Как сделать так чтобы прога скопировала саму себя(Delphi) netiv Помощь студентам 2 10.12.2011 13:10
Как сделать так чтобы моя программа при включении отображалась в панели задач, как например часы Window ? asked86 Win Api 1 15.12.2008 08:42