Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
1

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

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

Author24 — интернет-сервис помощи студентам
как сделать чтобы 2 цифры стали одним числом? т.е. как то так

C++
1
2
3
int a = 1;
int b = 2;
int c = ... //c == 12
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2014, 10:54
Ответы с готовыми решениями:

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

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

Из цифр двух натуральных чисел составить наибольшее возможное число, сохраняя последовательность цифр
Здравствуйте! Помогите, пожалуйста, решить задачу: Из цифр двух двух натуральных чисел составить...

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

28
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,116
Записей в блоге: 2
30.07.2014, 10:56 2
C++
1
c = a * 10 + b;
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
30.07.2014, 10:59  [ТС] 3
Kastaneda, да нет, так не пойдет... я планировал таким образом складывать не только 2 цифры, а побольше числа... я думаю тут надо как то толи через & толи через | действовать...
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
30.07.2014, 10:59 4
C++
1
2
3
4
5
6
char d1='2';
char d2='1';
char number[3]={0,0,0};  // number[2] обнуляем - конец строки
number[0]=d2; // старшая цифра
number[1]=d1; // младшая цифра
cout<<number;
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
30.07.2014, 11:00  [ТС] 5
zss, мне нужно в цифровым типом, зачем мне строки...
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
30.07.2014, 11:04 6
Цитата Сообщение от GetHelp Посмотреть сообщение
зачем мне строки.
Для альтернативы. Если вычислений не производите,
то незачем цифры преобразовывать в число.
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
30.07.2014, 11:04 7
По какому-такому волшебному правилу они должны стать одним числом?
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
30.07.2014, 11:05  [ТС] 8
Цитата Сообщение от zss Посмотреть сообщение
Для альтернативы. Если вычислений не производите,
то незачем цифры преобразовывать в число.
а кто вам сказал что я не произвожу вычислений?

Добавлено через 21 секунду
Цитата Сообщение от castaway Посмотреть сообщение
По какому-такому волшебному правилу они должны стать одним числом?
ну так наверное в этом и есть весь вопрос...
0
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
30.07.2014, 11:07 9
Лучший ответ Сообщение было отмечено GetHelp как решение

Решение

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <cmath>
 
int main() {
    int a = 10000;
    int b = 5000;
    int c = a * pow(10, floor(log10(b))) + b;
    std::cout << c << std::endl;
}
1
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
30.07.2014, 11:15 10
0x10, У меня в Вашем примере получился ответ
500005000
среда VS 2008 (пришлось вставить преобразования к double Для pow и log10).
Правильный ответ получился так
C++
1
2
3
double a = 10000;
    double b = 5000;
    int c = static_cast<int>(a * pow(10., log10(a) ) + b);
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
30.07.2014, 11:20  [ТС] 11
0x10, спс работает
0
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
30.07.2014, 11:21 12
zss, написал не проверяя.
В таком виде как работает?
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <cmath>
 
int main() {
    int a = 10000;
    int b = 5000;
    int c = a * pow(10, ceil(log10(b))) + b;
    std::cout << c << std::endl;
}
(g++-4.9, ответ правильный)
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
30.07.2014, 11:21  [ТС] 13
zss, у меня все работает, в том числе и с теми числами (10000, 5000)
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
30.07.2014, 11:22 14
GetHelp, ну наверное это вопрос к тебе.
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
30.07.2014, 11:23  [ТС] 15
castaway, эмм какой вопрос? о_О
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
30.07.2014, 11:28 16
Цитата Сообщение от 0x10 Посмотреть сообщение
В таком виде как работает?
Так работает, если a и b объявить double
1
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
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, ответ правильный)
компилятор неправильный:rofl:

0
BRcr
30.07.2014, 21:43
  #19

Не по теме:

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

0
И целого heap'а мало
96 / 57 / 17
Регистрация: 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
31.07.2014, 20:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2014, 20:58
Помогаю со студенческими работами здесь

Составить из двух слов одно
Здравствуйте, натолкните на идею, как сделать данное задание. задание заключается в следующем :...

Из цифр двух натуральных чисел создать наибольшее возможное число, сохраняя порядок следования цифр
Есть задача: Требуется написать программу, которая из цифр двух натуральных чисел создает...

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

Дано число n из 5 цифр. Составить все комбинации этих цифр
Помогите решить. Вводим число, загоняем по элементам в массив, после в нем перебираем все...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru