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

Описать процедуру AddLeftDigit(D, K), добавляющую к целому по- ложительному числу K слева цифру D - C++

Восстановить пароль Регистрация
 
kudpro
28 / 3 / 1
Регистрация: 12.05.2011
Сообщений: 60
26.11.2011, 02:34     Описать процедуру AddLeftDigit(D, K), добавляющую к целому по- ложительному числу K слева цифру D #1
Описать процедуру AddLeftDigit(D, K), добавляющую к целому по-
ложительному числу K слева цифру D (D — входной параметр целого
типа, лежащий в диапазоне 1–9, K — параметр целого типа, являющийся
одновременно входным и выходным). С помощью этой процедуры после-
довательно добавить к данному числу K слева данные цифры D1 и D2,
выводя результат каждого добавления.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2011, 02:34     Описать процедуру AddLeftDigit(D, K), добавляющую к целому по- ложительному числу K слева цифру D
Посмотрите здесь:

C++ По заданному целому числу определить,является ли оно положительным,отрицательным или нулем.
C++ Найти элемент массива, значение которого наиболее близко к какому-нибудь целому числу
По введённому целому числу программа должна определить, сколько в нём десятичных цифр C++
Найти все трехзначные числа, сумма цифр которых равна данному целому числу C++
Найти в массиве порядковый номер наиболее близкого элемента к заданному целому числу Х C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
26.11.2011, 02:47     Описать процедуру AddLeftDigit(D, K), добавляющую к целому по- ложительному числу K слева цифру D #2
признайтесь, эта задача не из высокоуровневого программирования. И боюсь что ее решение на языке Си будет не таким, какое должно быть в аспекте операционного устройства, т.к. сужен прямой доступ к аппаратной части эвм.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
26.11.2011, 03:02     Описать процедуру AddLeftDigit(D, K), добавляющую к целому по- ложительному числу K слева цифру D #3
Без проверки на переполнение, с большими числами будет неправильно работать.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <math.h>
 
unsigned addleft(unsigned x, unsigned y) {
    return x + y * (unsigned)pow(10.0, floor(log10(x)) + 1.0);
}
 
int main(void){
    unsigned x, y;
    
    while ( printf("X: ") > 0 && scanf("%u", &x) == 1 && printf("Y: ") > 0 && scanf("%u", &y) == 1 && y > 0 && y < 10 )
        printf("> %u\n", addleft(x, y));
    
    return 0;
}
Цитата Сообщение от kudpro Посмотреть сообщение
последовательно добавить к данному числу K слева данные цифры D1 и D2
ну и с этим сам как-нибудь...
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
26.11.2011, 11:51     Описать процедуру AddLeftDigit(D, K), добавляющую к целому по- ложительному числу K слева цифру D #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
size_t to_left(size_t d, size_t k) {
   size_t num;
   for(num = 1u; num < k; num *= 10u);
   return d * num + k;
}
 
int main(void)
{
   printf("%u\n", to_left(3u,  2u));
   printf("%u\n", to_left(5u,  12u));
   printf("%u\n", to_left(17u, 572u));
   getchar();
   return 0;
}
Yandex
Объявления
26.11.2011, 11:51     Описать процедуру AddLeftDigit(D, K), добавляющую к целому по- ложительному числу K слева цифру D
Ответ Создать тему
Опции темы

Текущее время: 02:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru