Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для НубаС++
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115

Составление одного числа из нескольких

24.07.2012, 22:39. Показов 2465. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Один вопрос как?
У меня есть несколько int чисел и из них мне надо сделать одно.
Например так: есть числа 1 8 9 7 и их надо превратить в 1897
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.07.2012, 22:39
Ответы с готовыми решениями:

Пересчёт нескольких значений с выводом одного числа
Доброго дня, с php познакомился не так давно, поэтому всё ещё не всё понимаю :) Не так давно столкнулся с надобностью подсчёта количества...

Одномерный массив. составление одного массива из эл.другого.
задание звучит так: Составить массив B из неположительных элементов массива А(15). Вот что у меня получилось, но доделать никак не...

Составление max числа из цифр произвольного числа
Добрый день гуру паскаля помогите. Нужно создать программу составления максимального числа из цифр произвольного числа, введеного с...

14
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.07.2012, 23:25
Вот я бы так сделал:
C++
1
2
3
4
5
6
7
8
int number[] = {1, 8, 9, 7, 9};
int n(0);  //наше число
int j(1);  //множитель
for (int i = 0; i<sizeof number/sizeof (int)-1; i++)
    j*=10;
for (int i = 0; i<sizeof number/sizeof (int); i++, j/=10)
    n += number[i]*j;
cout<<n<<endl;
1
 Аватар для НубаС++
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
25.07.2012, 10:49  [ТС]
спасибо. но планы немного изменились и теперь мне надо сделать из char[] int
Новая цель: есть char str_ptr[11] str_ptr[12] str_ptr[13] str_ptr[14] str_ptr[15], они содержат в себе по 1 цифре
И мне каким-нибуть путем нужно из этих 4 char составить 1 int.
Помогите плиз
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
25.07.2012, 11:01
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "iostream.h"
 
int main(int argc, char* argv[])
{
    char C[]={'8','2','3','8'};
    int i,r=0,n=sizeof(C);
 
    for (i=0; i<n; i++)
    {
        r=r*10+(C[i]-'0');
    }
 
    cout << r << endl;
 
    return 0;
}
1
 Аватар для НубаС++
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
25.07.2012, 11:48  [ТС]
не получилось. постоянно выводит число 692

Добавлено через 37 минут
Всем спасибо. Нашел такое решение: (очень тупое но хотябы решение)
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
stringstream ss1;
stringstream ss2;
stringstream ss3;
stringstream ss4;
stringstream ss5;
string s1;
string s2;
string s3;
string s4;
string s5;
ss1 << str_ptr[11];
ss1 >> s1;
ss2 << str_ptr[12];
ss2 >> s2;
ss3 << str_ptr[13];
ss3 >> s3;
ss4 << str_ptr[14];
ss4 >> s4;
ss5 << str_ptr[15];
ss5 >> s5;
 
string olelua;
olelua = s1 + s2 + s3 + s4 + s5;
 
int n = atoi(olelua.c_str()); // ÂÎÒ ÎÍÀ ÑÒÐÎÊÀ Ñ ÏÐÅÄÛÄÓÙÈÌ ÏÎÊÀÇÀÍÈÅÌ Ñ×ÅÒ×ÈÊÀ  ÈÍÒÅÅÅÅ
 
cout << n;
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
25.07.2012, 11:51
Попробовал с массивом char - в Visual Studio 2012 работает без проблем
C++
1
2
3
4
5
6
7
8
char number[] = {7, 8, 9, 7, 9};
int n(0);  //наше число
int j(1);  //множитель
for (int i = 0; i<sizeof number/sizeof (char)-1; i++)
    j*=10;
for (int i = 0; i<sizeof number/sizeof (char); i++, j/=10)
    n += (number[i])*j;  // странно что тут не надо коректно переводить char в int
cout<<n<<endl;
1
 Аватар для НубаС++
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
25.07.2012, 12:03  [ТС]
спасибо
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
25.07.2012, 12:05
Цитата Сообщение от yuron_477 Посмотреть сообщение
странно что тут не надо коректно переводить char в int
Почему странно? В арифметических выражениях char преобразуется в int.
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
25.07.2012, 12:15
C++
1
2
3
4
5
char ch = '0';
int n = ch;
cout<<n<<endl;  // выводит 48, а не 0
int x = ch-48;
cout<<x<<endl;  // нормально
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.07.2012, 12:27
Грубо говоря по тому что char и есть int только меньшего размера
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
25.07.2012, 12:30
yuron_477, вы массив инициализируете так
C++
1
char number[] = {7, 8, 9, 7, 9};
а не так
C++
1
char number[] = {'7', '8', '9', '7', '9'};
Это то же самое, что в последнем примере сделать так:
C++
1
2
3
char ch = 0;
int n = ch;
cout << n << endl;
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
25.07.2012, 12:31
Цитата Сообщение от НубаС++ Посмотреть сообщение
(очень тупое но хотябы решение)
- да уж...

Мое решение работает верно:
Миниатюры
Составление одного числа из нескольких  
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.07.2012, 13:20
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 <iostream>
#include <string>
#include <vector>
#include <stdlib.h>
#include <boost/lexical_cast.hpp>
//---------------------------------------------------------------------------- 
 
//----------------------------------------------------------------------------  
int main()
{
using namespace std;
 
char ch[15]={1};
string str(ch+11,ch+15);
// вариант 1
cout<< atoi( str.c_str() ) <<endl;
// вариант 2 
try
  {
   int i=lexical_cast<int>(string);
   cout<<i<<endl;   
  }
catch(bad_lexical_cast &e)  { cerr<<e.what()<<end;}
 
return 0;
}
//---------------------------------------------------------------------------
блин только не пойму с какими опциями надо компилить в g++ boost/lexical_cast
0
Эксперт С++
 Аватар для nameless
342 / 306 / 36
Регистрация: 16.06.2009
Сообщений: 486
25.07.2012, 13:20
Поигрался немного с boost proto

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
#include <iostream>
#include <string>
#include <vector>
#include <stdexcept>
#include <boost/proto/core.hpp>
#include <boost/proto/context.hpp>
 
namespace proto = boost::proto;
using proto::_;
 
template <typename expr>
struct calculator_expression;
 
struct calculator_domain
   : proto::domain <proto::generator <calculator_expression>> { };
 
template <int I> struct placeholder {  };
 
struct calculator_context
   : proto::callable_context <calculator_context const> {
   std::vector <int> v_numbers;
   typedef int result_type;
 
   explicit calculator_context(const std::vector <int> & v_numbers_)
      : v_numbers(v_numbers_) {  }
 
   template <int I>
   int operator ()(proto::tag::terminal, placeholder <I>) const {
      std::string result;
      
      for (auto & val : this->v_numbers) {
         result += std::to_string(val);
      }
    
      return stoi(result);
    }
};
 
template <typename expr>
struct calculator_expression
  : proto::extends <expr, calculator_expression <expr>, calculator_domain>
{
   explicit calculator_expression(expr const & expression = expr())
      : calculator_expression::proto_extends(expression)
   {  }
 
   BOOST_PROTO_EXTENDS_USING_ASSIGN(calculator_expression <expr>)
 
   int operator ()() const {
      calculator_context const ctx;
      return proto::eval(*this, ctx);
   }
 
   int operator ()(const std::vector <int> & v_numbers) const {
      calculator_context const ctx(v_numbers);
      return proto::eval(*this, ctx);
   }
};
 
calculator_expression <proto::terminal <placeholder <1>>::type> const _1;
calculator_expression <proto::terminal <placeholder <2>>::type> const _2;
 
int main() {
   try {
      std::vector <int> v_numbers = { 8, 230, 12, 20, 1 };
      int number = ((_1)(v_numbers));
      std::cout << number << std::endl;
   } catch (const std::out_of_range & exc) {
      std::cerr << exc.what();
   }
   
   return 0;
}
http://liveworkspace.org/code/... 2802cd8fa0
1
 Аватар для НубаС++
1 / 1 / 1
Регистрация: 25.02.2012
Сообщений: 115
25.07.2012, 22:51  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Мое решение работает верно:
Я не спорю оно работает.
Кстати извините когда я писал (очень тупое но хотябы решение) я имел ввиду что так у меня получилось
я бы воспользовался и вашим но у меня почему что не получилось вашим способом
Еще раз извиняюсь если я не так выразился
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.07.2012, 22:51
Помогаю со студенческими работами здесь

Составление числа из цифр другого числа
Дано натуральное число, содержащее до 50 разрядов. Составить из этого числа наибольшее число, которое делится на 2. Если такое число...

Составление числа из цифр другого числа
Дано натуральное число, содержащее до 50 разрядов. Составить из этого числа наибольшее число, которое делится на 2. Если такое число...

Составление числа из цифр другого числа
можете помочь, ни разу на этом не делали, вот задали... Дано натуральное число, содержащее до 50 разрядов. Составить из этого числа...

Нахождение количества столбцов матрицы, не содержащих ни одного нулевого элемента, и максимального числа, встречающихся более одного раза.
Ребята очень нужна помощь, срочно надо сдать индивидуалку две задачки не получилось сделать пожалуйста помогите! Благодарю за ранее!!! ...

Выбор одного из нескольких
Столкнулся с таким моментом. Создаю переменную Test. Хочу что бы выбор значения для этой переменной был только из заданных мной вариантов,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru