Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
 Аватар для perec200
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 98

Как конвертировать массив int в int?

15.07.2015, 22:30. Показов 3119. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть массив целых чисел, как из всех этих чисел получить одно единственное?
C++
1
2
3
int myints[] = {7, 4, 5, 3, 0};
int a;
//Хочу чтобы a = 74530;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.07.2015, 22:30
Ответы с готовыми решениями:

Какая из этих функций int Q(int w) int W(int y,int u,int i) сработает быстрее?
Если есть 2 функции(простые или перегруженные) к примеру Q(int w) int W(int y,int u,int i)или int Funkz(int a) int Funkz(int a, int b, int...

Не работает перегрузка индексного оператора [], вместо [int][int] почему то нужно ставить [0][int][int]
#include<iostream> #include<string> #include<vector> #include<algorithm> #include<ctime> #include<conio.h> #include<windows.h> ...

Как заполнить один int пустой массив другим int массивом ?
Можно пример кода :)

16
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
15.07.2015, 22:36
perec200, вот вам вариант через строку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
int main() {
    int myints[] = {7, 4, 5, 3, 0};
    
    std::string str;
    for(const auto &el:myints)
        str+=std::to_string(el);
        
    int number = std::stoi(str);
    std::cout<<number<<std::endl;
    return 0;
}
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
15.07.2015, 22:42
http://rextester.com/YDSA2611

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
#include <iostream>
 
 
template<size_t N> 
int accumulate(  const int (&arr)[N] )
{
    int result = arr[0];
    for(size_t n = 1; n < N; ++n)
        result = result * 10  + arr[n];
    return result;
}
 
 
int main()
{
    std::cout << "Hello, world!\n";
    
    int myints[] = {7, 4, 5, 3, 0};
    
    int a; // //Хочу чтобы a = 74530;
    
    a = accumulate(myints);
    
    std::cout<<"result = "<< a<< '\n';
    
}
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
15.07.2015, 22:49
hoggy, тоже думал над таким вариантом,но если не в первом элементе число будет больше 9,преобразование будет неверным.
0
 Аватар для perec200
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 98
15.07.2015, 22:50  [ТС]
Сделал. Всё оказалось достаточно просто.
C++
1
2
3
4
5
6
int myints[] = {7, 4, 5, 3, 0}, a = 0, c = 1;
 
for(int i=4; i>=0; i--){
a += myints[i]*c;
c *= 10;
}
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
15.07.2015, 22:54
Цитата Сообщение от S_el Посмотреть сообщение
тоже думал над таким вариантом,но если не в первом элементе число будет больше 9,преобразование будет неверным.
эт почему же?

действительно
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
15.07.2015, 22:57
Цитата Сообщение от hoggy Посмотреть сообщение
эт почему же?
на вашем-же коде:
http://ideone.com/9gIGb5

Добавлено через 34 секунды
Цитата Сообщение от perec200 Посмотреть сообщение
Сделал. Всё оказалось достаточно просто.
попробуйте изменить массив.
0
 Аватар для perec200
0 / 0 / 0
Регистрация: 04.10.2014
Сообщений: 98
15.07.2015, 22:59  [ТС]
Всё ок.
https://ideone.com/LA0FZj
0
 Аватар для 1337trix
23 / 24 / 11
Регистрация: 04.12.2014
Сообщений: 422
15.07.2015, 22:59
Есть такое предложение
C++
1
2
3
4
5
6
7
8
int myints[] = {7, 4, 5, 3, 0};
int a;
string line = "";
foreach (int elem in myints)
{
line += elem.toString(); //пропишем линейку из наших элементов массива в стринг
}
a = Convert.toInt16(line);
вполне неплохо
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
15.07.2015, 23:04
1337trix, один минус,ваш вариант это не C++,а C#.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
15.07.2015, 23:08
http://rextester.com/ILU96929

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
#include <iostream>
#include <cmath>
 
 
int count_digits(int val)
    { return ( val /= 10 ) ? 1 + count_digits(val) : 1; }
 
template<size_t N> 
int accumulate(  const int (&arr)[N] )
{
    int result = arr[0];
    for(size_t n = 1; n < N; ++n)
        result = result * pow( 10, count_digits(arr[n])) + arr[n];
        
    return result;
}
 
 
int main()
{
    std::cout << "Hello, world!\n";
    
    int myints[] = {17, 4, 50, 3, 0};
    
    const auto a = accumulate(myints);
    
    std::cout<<"result = "<< a<< '\n';
    
}
0
15.07.2015, 23:20

Не по теме:

hoggy, другое дело :)

1337trix, вот на Erlang,как видите,еще проще:

Prolog
1
2
L = [7, 4, 5, 3, 0].
{N,_}=string:to_integer(lists:concat(L)).

0
15.07.2015, 23:26

Не по теме:

Цитата Сообщение от S_el Посмотреть сообщение
string:to_integer(lists:concat(L)).
не умею эрланг, но string действует как триггер: медлительный тормоз.
все решения завязанные на перегонку туда-сюда в строки и обратно - говнокод.

0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
15.07.2015, 23:30
Цитата Сообщение от hoggy Посмотреть сообщение
не умею эрланг, но string действует как триггер: медлительный тормоз.
все решения завязанные на перегонку туда-сюда в строки и обратно
Тоже предпочитаю решения на математике везде,где можно.Но конвертация в строку обычно самый простой вариант.
0
15.07.2015, 23:48

Не по теме:

Цитата Сообщение от S_el Посмотреть сообщение
.Но конвертация в строку обычно самый простой вариант.
ага.

вот только оно там под капотом учитывает локаль,
бежит по таблицам...

виндузятно-плюснутая версия создает stringstream поток...

жуть >_<

0
16.07.2015, 00:33

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
ага.
вот только оно там под капотом учитывает локаль,
бежит по таблицам...
виндузятно-плюснутая версия создает stringstream поток...
да,но то,что под капотом, начинает беспокоить только когда переходишь на более высокий уровень программирования(высокий, не в плане отдаления от машинных команд :)).

0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
16.07.2015, 03:15
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
#include <iostream>
#include <cmath>        
 
using namespace std;
 
int main ()
{
  int Arr[]={17, 4, 50, 3, 0, 999};
  int k=Arr[0];
  int r;  // разрядность числа
 
  int size=sizeof(Arr)/sizeof(*Arr)-1;  //Размер массива - 1
 
  for (int i=0;i<size;i++){
        if (!Arr[i+1]){
        k*=10;
        continue;
    }
    r = (int)log10(Arr[i+1])+1;
    k=k*pow(10,r)+Arr[i+1];
  }
 
  cout<<k<<"\n";
 
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.07.2015, 03:15
Помогаю со студенческими работами здесь

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include &lt;iostream&gt; using...

[C++ Error] Unit2.cpp(22): E2034 Cannot convert 'int (*)(int,int *)' to 'int'
Всем привет! Пожалуйста , помогите , почему выдает ошибку Unit2.cpp(22): E2034 Cannot convert 'int (*)(int,int *)' to 'int' ?. Мне нужно...

Конвертировать массив int в буфер char
Здравствуйте! Помогите пожалуйста записать массив int в буфер char. Вот что я написала, но но в итоге записывает только одно последнее...

Конвертировать int и float в общий массив байт
Доброго времени суток, подскажите есть строка в чаре char szBuf = &quot;2;1;5371452;26565.2454;26589.2454;3456.2454;&quot;; как мне ее...

Как конвертировать String в int
Вот например: string a = 09; Сделать что б: Int b = 9; а также: string a = 17; Сделать что б: Int b = 17;


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru