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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.73
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
#1

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

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

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

C++ long long int и его поведение в структуре
Создать динамический массив, любого простого типа (например: int, long, float, double) C++
C++ Подскажите что за типа такой long long int?
C++ Как процессор работает с long long int ?
Можно ли из числа типа double получить 2 числа типа int? C++
C++ Построение гистограммы (частота встречающихся чисел типа long int)
C++ Быстрое вычисление наибольшего общего делителя для unsigned long long int
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yanyk1n
4326 / 1457 / 152
Регистрация: 12.03.2009
Сообщений: 5,310
20.04.2010, 19:19     Перевод числа типа long int #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;
}
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
20.04.2010, 19:20     Перевод числа типа long int #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, а в массив то в прямом порядке записывать надо, а не выводить в обратном
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 19:21  [ТС]     Перевод числа типа long int #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;
}
А можно с коментами. Я хочу узнать как оно правильно работает.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 20:06     Перевод числа типа long int #5
&Alex&, Случайно не длинная арифметика Вас интерисует, тогда может быть все намного проще.
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 20:11  [ТС]     Перевод числа типа long int #6
Цитата Сообщение от valeriikozlov Посмотреть сообщение
&Alex&, Случайно не длинная арифметика Вас интерисует, тогда может быть все намного проще.
Если Вы имели ввиду длинное число-то да.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 20:27     Перевод числа типа long int #7
Предлагаю Вам написать задание полностью. Тогда будет более полноценная помощь. То что Вы задумали, написав такие вопросы, правильно, но не оптимально.
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 20:50  [ТС]     Перевод числа типа long int #8
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Предлагаю Вам написать задание полностью. Тогда будет более полноценная помощь. То что Вы задумали, написав такие вопросы, правильно, но не оптимально.
Задание тоже, только нужно для длинных чисел(напр.:1234567->1,2,3,4,5,6,7) и если можно то с помощью двух функций и на Си.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 20:55     Перевод числа типа long int #9
Так что Вам нужно в конечном итоге сделать? Два длинных числа сложить? Найти разность, перемножить? Или разделить. Или просто как Вы пишите перевести в массив? (На всякий случай сообщаю - сложить, отнять, умножить, разделить, найти целый остаток от деления - это очень просто).
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 20:59  [ТС]     Перевод числа типа long int #10
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Так что Вам нужно в конечном итоге сделать? Два длинных числа сложить? Найти разность, перемножить? Или разделить. Или просто как Вы пишите перевести в массив? (На всякий случай сообщаю - сложить, отнять, умножить, разделить, найти целый остаток от деления - это очень просто).
Нужно одно длинное число(напр.57836931) перевести в несколько чисел: 5,7,8,3,6,9,3,1 и эти числа записать в массив. Для int получается, а для больших чисел-нет((
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:05     Перевод числа типа long int #11
&Alex&, Давайте тогда окончально уточню.
Изначально число (long int) вводится с клавиатуры или из файла? Затем создается массив int и все цифры первого числа записываются в массив int. После этого значения массива int выводтся на экран или записываются в файл?
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 21:21  [ТС]     Перевод числа типа long int #12
Цитата Сообщение от valeriikozlov Посмотреть сообщение
&Alex&, Давайте тогда окончально уточню.
Изначально число (long int) вводится с клавиатуры или из файла? Затем создается массив int и все цифры первого числа записываются в массив int. После этого значения массива int выводтся на экран или записываются в файл?
Всё правильно, только значение массива int выводится на экран.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:29     Перевод числа типа long int #13
Цитата Сообщение от &Alex& Посмотреть сообщение
Изначально число (long int) вводится с клавиатуры или из файла?
еще раз.
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 21:31  [ТС]     Перевод числа типа long int #14
Цитата Сообщение от valeriikozlov Посмотреть сообщение
еще раз.
Число (long int) вводится с клавиатуры. Затем создается массив int и все цифры первого числа записываются в массив int. После этого значения массива int выводятся на экран.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:38     Перевод числа типа long int #15
По-моему очень просто решается задача. Не нужно создавать даже число (long int).
Создаем сразу массив int, при вводе числа с клавиатуры, каждую цифру вводим сразу в массив int на свое место. По окончании ввода выводим все значения int-ского массива на экран.
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 21:41  [ТС]     Перевод числа типа long int #16
Цитата Сообщение от valeriikozlov Посмотреть сообщение
По-моему очень просто решается задача. Не нужно создавать даже число (long int).
Создаем сразу массив int, при вводе числа с клавиатуры, каждую цифру вводим сразу в массив int на свое место. По окончании ввода выводим все значения int-ского массива на экран.
Так не пойдёт. Нужно обязательно вводить число типа long int.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2010, 22:02     Перевод числа типа long int
Еще ссылки по теме:

C++ Вывести наибольшую цифру числа типа long int
Перевод десятичного числа в двоичное, результат в массиве типа int C++
Максимальная и минимальная цифра числа long long int C++
C++ Определите объединения, элементами которого являются массивы из трех чисел типа long и с шести чисел типа int
Перевод переменных типа int в char C++

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 22:02     Перевод числа типа long int #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;
}
Yandex
Объявления
20.04.2010, 22:02     Перевод числа типа long int
Ответ Создать тему
Опции темы

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