Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.73
&Alex&
19 / 19 / 3
Регистрация: 21.03.2010
Сообщений: 221
#1

Перевод числа типа long int - C++

20.04.2010, 19:15. Просмотров 2978. Ответов 16
Метки нет (Все метки)

Как сделать, чтоб одно число типа long int(большое число) перевести в несколько и записать в массив.
Например, число 46843867 записать в массив как числа 4,6,8,4,3,8,6,7 и т.д. Помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2010, 19:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Перевод числа типа long int (C++):

Вывести наибольшую цифру числа типа long int
помогите написать код Дано n-значное число longint. Вывести наибольшую цифру...

Подскажите что за типа такой long long int?
Вопрос собственно сверху. Нигде не смог найти описания подобного типа

Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в степень p
Требуется написать функцию long long pow(long long a, unsigned int p), которая...

Максимальная и минимальная цифра числа long long int
Доброго времени суток! Подскажите, пожалуйста, как с помощью цикла (while, do...

Перевод десятичного числа в двоичное, результат в массиве типа int
Здравствуйте! Задача: написать программу, которая переводит введенное...

Определите объединения, элементами которого являются массивы из трех чисел типа long и с шести чисел типа int
Определите объединения, элементами которого являются массивы из трех чисел типа...

16
yanyk1n
4331 / 1462 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
20.04.2010, 19:19 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{
    long N;
    cout << "N -> ";
    cin >> N;
    int num[15];
    int k = 0;
    while (N)
    {
        num[k++] = N % 10;
        N /= 10;
    }
    for (int i = k-1; i>=0 ; i--) cout << num[i] << " ";
    cout << endl;
    return 0;
}
0
M128K145
Эксперт JavaЭксперт С++
8320 / 3540 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
20.04.2010, 19:20 #3
C++
1
2
3
4
5
6
7
8
int mas[10];
int i = 9, ch = 46843867;
while(ch > 0)
{
    mas[i] = ch %10;
    ch /= 10;
    --i;
}
k1ry4, а в массив то в прямом порядке записывать надо, а не выводить в обратном
0
&Alex&
19 / 19 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 19:21  [ТС] #4
Цитата Сообщение от k1ry4 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{
    long N;
    cout << "N -> ";
    cin >> N;
    int num[15];
    int k = 0;
    while (N)
    {
        num[k++] = N % 10;
        N /= 10;
    }
    for (int i = k-1; i>=0 ; i--) cout << num[i] << " ";
    cout << endl;
    return 0;
}
А можно с коментами. Я хочу узнать как оно правильно работает.
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 20:06 #5
&Alex&, Случайно не длинная арифметика Вас интерисует, тогда может быть все намного проще.
0
&Alex&
19 / 19 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 20:11  [ТС] #6
Цитата Сообщение от valeriikozlov Посмотреть сообщение
&Alex&, Случайно не длинная арифметика Вас интерисует, тогда может быть все намного проще.
Если Вы имели ввиду длинное число-то да.
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 20:27 #7
Предлагаю Вам написать задание полностью. Тогда будет более полноценная помощь. То что Вы задумали, написав такие вопросы, правильно, но не оптимально.
0
&Alex&
19 / 19 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 20:50  [ТС] #8
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Предлагаю Вам написать задание полностью. Тогда будет более полноценная помощь. То что Вы задумали, написав такие вопросы, правильно, но не оптимально.
Задание тоже, только нужно для длинных чисел(напр.:1234567->1,2,3,4,5,6,7) и если можно то с помощью двух функций и на Си.
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 20:55 #9
Так что Вам нужно в конечном итоге сделать? Два длинных числа сложить? Найти разность, перемножить? Или разделить. Или просто как Вы пишите перевести в массив? (На всякий случай сообщаю - сложить, отнять, умножить, разделить, найти целый остаток от деления - это очень просто).
0
&Alex&
19 / 19 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 20:59  [ТС] #10
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Так что Вам нужно в конечном итоге сделать? Два длинных числа сложить? Найти разность, перемножить? Или разделить. Или просто как Вы пишите перевести в массив? (На всякий случай сообщаю - сложить, отнять, умножить, разделить, найти целый остаток от деления - это очень просто).
Нужно одно длинное число(напр.57836931) перевести в несколько чисел: 5,7,8,3,6,9,3,1 и эти числа записать в массив. Для int получается, а для больших чисел-нет((
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:05 #11
&Alex&, Давайте тогда окончально уточню.
Изначально число (long int) вводится с клавиатуры или из файла? Затем создается массив int и все цифры первого числа записываются в массив int. После этого значения массива int выводтся на экран или записываются в файл?
0
&Alex&
19 / 19 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 21:21  [ТС] #12
Цитата Сообщение от valeriikozlov Посмотреть сообщение
&Alex&, Давайте тогда окончально уточню.
Изначально число (long int) вводится с клавиатуры или из файла? Затем создается массив int и все цифры первого числа записываются в массив int. После этого значения массива int выводтся на экран или записываются в файл?
Всё правильно, только значение массива int выводится на экран.
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:29 #13
Цитата Сообщение от &Alex& Посмотреть сообщение
Изначально число (long int) вводится с клавиатуры или из файла?
еще раз.
0
&Alex&
19 / 19 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 21:31  [ТС] #14
Цитата Сообщение от valeriikozlov Посмотреть сообщение
еще раз.
Число (long int) вводится с клавиатуры. Затем создается массив int и все цифры первого числа записываются в массив int. После этого значения массива int выводятся на экран.
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:38 #15
По-моему очень просто решается задача. Не нужно создавать даже число (long int).
Создаем сразу массив int, при вводе числа с клавиатуры, каждую цифру вводим сразу в массив int на свое место. По окончании ввода выводим все значения int-ского массива на экран.
0
&Alex&
19 / 19 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 21:41  [ТС] #16
Цитата Сообщение от valeriikozlov Посмотреть сообщение
По-моему очень просто решается задача. Не нужно создавать даже число (long int).
Создаем сразу массив int, при вводе числа с клавиатуры, каждую цифру вводим сразу в массив int на свое место. По окончании ввода выводим все значения int-ского массива на экран.
Так не пойдёт. Нужно обязательно вводить число типа long int.
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 22:02 #17
хорошо, делаем так:
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
#if defined(_MSC_VER)
#define _CRT_SECURE_NO_DEPRECATE
#endif
 
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
 
#if defined(__GNUC__)
 
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
 
#elif defined(_MSC_VER)
 
typedef __int64 int64_t;
#define PRId64 "I64d"
#define SCNd64 "I64d"
 
#endif
#include <iostream>
using namespace std;
 
 
 
int main()
{
    int64_t a;
scanf( "%" SCNd64 , &a );
int mas[256];
for(int i=0; i<256; i++)
mas[i]=-1;
int N=0;
for(i=0; a>0; i++)
{
mas[i]=a%10;
a/=10;
N++;
}
// вывод на экран массива int
for(i=N-1; i>=0; i--)
printf("%d", mas[i]);
        return 0;
}
1
20.04.2010, 22:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2010, 22:02
Привет! Вот еще темы с решениями:

Построение гистограммы (частота встречающихся чисел типа long int)
Здравствуйте, можете подсказать какие-нибудь идеи, как выполнить построение...

Создать динамический массив, любого простого типа (например: int, long, float, double)
1. Создать проект, который содержит консольную программу Win32. 2. Создать...

Быстрое вычисление наибольшего общего делителя для unsigned long long int
Даны два числа типа unsigned long long int, в них могут оказаться любые...

Перевести long long unsigned int в массив char
Подскажите, пожалуйста, как превратить число типа long long unsigned int в...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

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