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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
GetHelp
-7 / 61 / 6
Регистрация: 27.02.2013
Сообщений: 1,112
#1

Из двух цифр составить одно число - C++

30.07.2014, 10:54. Просмотров 1281. Ответов 28
Метки нет (Все метки)

как сделать чтобы 2 цифры стали одним числом? т.е. как то так

C++
1
2
3
int a = 1;
int b = 2;
int c = ... //c == 12
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2014, 10:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Из двух цифр составить одно число (C++):

Из цифр двух натуральных чисел составить наибольшее возможное число, сохраняя первоначальную последовательность цифр. - C++
подскажите пожалуйста.. Из цифр двух натуральных чисел составить наибольшее возможное число, сохраняя первоначальную последовательность...

составить линейную программу (сумма двух первых цифр заданного четырёхзначного числа равна сумме двух его последних цифр) - C++
составить линейную программу , печатающую значение true , если указанное высказывание является истинным , и false - в противном случае. ...

Из 8 различных цифр составить число, делящееся на любую из этих цифр - C++
Необходимо из 8 различных цифр составить число, делящееся на любую из этих цифр. Добавлено через 9 минут Не понимаю как сделать цикл...

Вводится две строки, состоящие из цифр; из этих цифр составить максимальное число - C++
Доброго времени суток! Нужно написать программу, где на экране вводится две строки состоящие из цифр, Из этих цифр составить максимальное...

Получить число, состоящее из суммы цифр, если оно четное - найти сумму двух первых цифр, иначе - разность - C++
Даны цифры двух целых чисел: трехзначного а3а2а1 и двусмысленного b2b1 где а1b1- число единиц, а2b2 число десятков, а 3 - число сотен....

Нужен совет по решению - из двух натуральных чисел составить одно наименьшее. - C++
Минимальное число Требуется написать программу, которая из цифр двух натуральных чисел создает наименьшее возможное число, сохраняя при...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
30.07.2014, 11:28 #16
Цитата Сообщение от 0x10 Посмотреть сообщение
В таком виде как работает?
Так работает, если a и b объявить double
1
GetHelp
-7 / 61 / 6
Регистрация: 27.02.2013
Сообщений: 1,112
30.07.2014, 11:28  [ТС] #17
я сделал в сишном стиле макросом, мне так удобнее... меньше места занимает и вообще... да тут округляющий еще макрос, давно уже у меня был, он даже лучше чем эти floor, ceil...

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#define Round(x) (x > 0) ? (int) (x + 0.5) : (int) (x - 0.5)
#define Combine(a,b) (a * pow(10, Round(log10(b))) + b)
 
void main()
{
    int a, b, c;
    printf("a = ");
    scanf("%d", &a);
    printf("b = ");
    scanf("%d", &b);
    c = Combine(a, b);
    printf("%d", c);
    getch();
}
0
Миниатюры
Из двух цифр составить одно число  
Jupiter
30.07.2014, 11:40
  #18

Не по теме:

Цитата Сообщение от 0x10 Посмотреть сообщение
(g++-4.9, ответ правильный)
компилятор неправильный

0
BRcr
30.07.2014, 21:43
  #19

Не по теме:

Я балдею от состава команды помощников и реакции ТС...

0
Andrej
И целого heap'а мало
94 / 55 / 9
Регистрация: 31.07.2014
Сообщений: 291
31.07.2014, 20:58 #20
Главная проблемма современных программистов - чрезмерное использование строк
c++11 стиль. MSVC13, clang 4.8. Вот.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <string>
#include <limits>
#include <sstream>
#include <iostream>
 
int
compileDigits(std::initializer_list<int> integers)
{
        std::stringstream result;
        int digit = 0;
        for (auto i = begin(integers);
             i < end(integers) &&
             digit < std::numeric_limits<int>::digits; ++i, ++digit) {
                result << *i;
        }
        return std::stoi(result.str());
};
 
 
int
main(int argc, char** argv)
{
        int a = compileDigits({1, 4, 4, 9, 9});
        std::cout << a << std::endl;
        std::system("pause");
        return 0;
};
0
gray_fox
01.08.2014, 03:43
  #21

Не по теме:

Ну раз так...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
 
 
template<typename T>
std::string to_string(T const& value) {
   return std::to_string(value);
}
 
template<typename T, typename ...Other>
std::string to_string(T const& value, Other const& ...other) {
   return to_string(value) + to_string(other...);
}
 
 
int main() {
   std::cout << to_string(100, 500) << std::endl;
}

0
Vtulhu
371 / 377 / 96
Регистрация: 12.08.2011
Сообщений: 1,610
01.08.2014, 21:25 #22
Наверное, за роскошь владения плюсами приходится расплачиваться неумением видеть простые решения задач...

C
1
2
3
4
5
6
7
8
9
int combine_digits(int* arr, unsigned siz)
{
    int n = 0;
    while( siz-- ) {
        n *= 10;
        n += *arr++;
    }
    return n;
}
0
_Ivana
3149 / 1777 / 152
Регистрация: 01.03.2013
Сообщений: 4,981
Записей в блоге: 2
01.08.2014, 22:45 #23
Согласен с последним оратором и кодом. Предлагавшим логарифмы и степени посоветую обратить внимание на термин "цифр" в заголовке темы.
0
Andrej
И целого heap'а мало
94 / 55 / 9
Регистрация: 31.07.2014
Сообщений: 291
02.08.2014, 00:25 #24
Нененнеене
С простыми решениями и новые фичи тогда не нужны!
Этож, ну как так :-(
0
BRcr
4008 / 2297 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
02.08.2014, 07:09 #25
Vtulhu, _Ivana, не было задачи складывать ни цифры, ни числа, увы...
0
GetHelp
-7 / 61 / 6
Регистрация: 27.02.2013
Сообщений: 1,112
02.08.2014, 17:54  [ТС] #26
ой да оставьте вы в покое мою тему ! все уже давно решено, юзаю логарифмы
Цитата Сообщение от _Ivana Посмотреть сообщение
Предлагавшим логарифмы и степени посоветую обратить внимание на термин "цифр" в заголовке темы.
это была опечатка, мне надо было складывать в одно число два других числа...
0
Vtulhu
371 / 377 / 96
Регистрация: 12.08.2011
Сообщений: 1,610
03.08.2014, 14:50 #27
Не нужны тут логарифмы. Да еще и потенциально опасны, как и вся компьютерная арифметика с плавающей точкой.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include "greatest.h"
 
unsigned int combine_numbers(unsigned int a, unsigned int b)
{
    unsigned int c = b;
    do {
        b /= 10;
        a *= 10;
    } while( b );
    c += a;
    return c;
}
 
TEST combine_0_0()
{
    unsigned int a = 0;
    unsigned int b = 0;
    unsigned int c = 0;
    ASSERT_EQ(combine_numbers(a, b), c);
    PASS();
}
 
TEST combine_0_1()
{
    unsigned int a = 0;
    unsigned int b = 1;
    unsigned int c = 1;
    ASSERT_EQ(combine_numbers(a, b), c);
    PASS();
}
 
TEST combine_1_0()
{
    unsigned int a = 1;
    unsigned int b = 0;
    unsigned int c = 10;
    ASSERT_EQ(combine_numbers(a, b), c);
    PASS();
}
 
TEST combine_1_1()
{
    unsigned int a = 1;
    unsigned int b = 1;
    unsigned int c = 11;
    ASSERT_EQ(combine_numbers(a, b), c);
    PASS();
}
 
TEST combine_123_999()
{
    unsigned int a = 123;
    unsigned int b = 999;
    unsigned int c = 123999;
    ASSERT_EQ(combine_numbers(a, b), c);
    PASS();
}
 
SUITE(the_suite)
{
    RUN_TEST(combine_0_0);
    RUN_TEST(combine_0_1);
    RUN_TEST(combine_1_0);
    RUN_TEST(combine_1_1);
    RUN_TEST(combine_123_999);
}
 
GREATEST_MAIN_DEFS();
 
int main(int argc, char **argv) {
    GREATEST_MAIN_BEGIN();      /* command-line arguments, initialization. */
    RUN_SUITE(the_suite);
    GREATEST_MAIN_END();        /* display results */
}
0
ValeryS
Модератор
6634 / 5041 / 466
Регистрация: 14.02.2011
Сообщений: 16,851
03.08.2014, 15:10 #28
Цитата Сообщение от zss Посмотреть сообщение
int c = static_cast<int>(a * pow(10., log10(a) ) + b);
ошибочка маленькая
попробуй
a=5 и b=10000
размер то нужен b
да и зачем?
Цитата Сообщение от zss Посмотреть сообщение
double a = 10000;
double b = 5000;
Добавлено через 2 минуты
а вот без математических библиотек
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int a=25;
int b=123;
int c,tmp;
 
tmp=b;
 
do
{
  tmp/=10;
  a*=10;
}while(tmp);
 
c=a+b;
1
orange_fox
34 / 34 / 6
Регистрация: 06.04.2014
Сообщений: 189
04.08.2014, 21:10 #29
Цитата Сообщение от GetHelp Посмотреть сообщение
int a = 1;
int b = 2;
C++
1
2
using namespace std;
int c = stoi(to_string(a) + to_string(b))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2014, 21:10
Привет! Вот еще темы с ответами:

Найти все трехзначные числа: "Само число и сумма цифр этого числа делятся на одно и то же число P" - C++
Помогите решить задачу :Найти все целые 3-х знатные числа,удовлетворяющие условию:Само число и сумма цифр этого числа делятся на одно и то...

В массиве после каждого числа, состоящего из одинаковых цифр, вставить еще одно такое же число - C++
В массиве целых положительных чисел после каждого числа, состоящего из одинаковых цифр, вставить еще одно такое же число. Зараннее...

Из двух цифр - целое число. - C++
Доброй ночи. Не могли бы Вы подсказать, как из двух цифр сделать одно целое число. К примеру есть два числа k1 = 5 и k2 = 7, надо сделать...

Составить одномерный массив B из номеров строк двумерного массива, в которых есть хотя бы одно нечетное число - C++
Здравствуйте, помогите написать программу, условие задачи: Дан двумерный целочисленный массив A(M,N). Составить одномерный массив B...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.08.2014, 21:10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru