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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.73
&Alex&
 Аватар для &Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 19:15     Перевод числа типа long int #1
Как сделать, чтоб одно число типа long int(большое число) перевести в несколько и записать в массив.
Например, число 46843867 записать в массив как числа 4,6,8,4,3,8,6,7 и т.д. Помогите пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yanyk1n
 Аватар для yanyk1n
4324 / 1455 / 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
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 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&
 Аватар для &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++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 20:06     Перевод числа типа long int #5
&Alex&, Случайно не длинная арифметика Вас интерисует, тогда может быть все намного проще.
&Alex&
 Аватар для &Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 20:11  [ТС]     Перевод числа типа long int #6
Цитата Сообщение от valeriikozlov Посмотреть сообщение
&Alex&, Случайно не длинная арифметика Вас интерисует, тогда может быть все намного проще.
Если Вы имели ввиду длинное число-то да.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 20:27     Перевод числа типа long int #7
Предлагаю Вам написать задание полностью. Тогда будет более полноценная помощь. То что Вы задумали, написав такие вопросы, правильно, но не оптимально.
&Alex&
 Аватар для &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++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 20:55     Перевод числа типа long int #9
Так что Вам нужно в конечном итоге сделать? Два длинных числа сложить? Найти разность, перемножить? Или разделить. Или просто как Вы пишите перевести в массив? (На всякий случай сообщаю - сложить, отнять, умножить, разделить, найти целый остаток от деления - это очень просто).
&Alex&
 Аватар для &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++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:05     Перевод числа типа long int #11
&Alex&, Давайте тогда окончально уточню.
Изначально число (long int) вводится с клавиатуры или из файла? Затем создается массив int и все цифры первого числа записываются в массив int. После этого значения массива int выводтся на экран или записываются в файл?
&Alex&
 Аватар для &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++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:29     Перевод числа типа long int #13
Цитата Сообщение от &Alex& Посмотреть сообщение
Изначально число (long int) вводится с клавиатуры или из файла?
еще раз.
&Alex&
 Аватар для &Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 21:31  [ТС]     Перевод числа типа long int #14
Цитата Сообщение от valeriikozlov Посмотреть сообщение
еще раз.
Число (long int) вводится с клавиатуры. Затем создается массив int и все цифры первого числа записываются в массив int. После этого значения массива int выводятся на экран.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:38     Перевод числа типа long int #15
По-моему очень просто решается задача. Не нужно создавать даже число (long int).
Создаем сразу массив int, при вводе числа с клавиатуры, каждую цифру вводим сразу в массив int на свое место. По окончании ввода выводим все значения int-ского массива на экран.
&Alex&
 Аватар для &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++ Быстрое вычисление наибольшего общего делителя для unsigned long long int
C++ Вывести наибольшую цифру числа типа long int
Перевод десятичного числа в двоичное, результат в массиве типа int C++

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 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
Ответ Создать тему
Опции темы

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