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

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

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

Как сделать, чтоб одно число типа long int(большое число) перевести в несколько и записать в массив.
Например, число 46843867 записать в массив как числа 4,6,8,4,3,8,6,7 и т.д. Помогите пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2010, 19:15
Ответы с готовыми решениями:

Вывести наибольшую цифру числа типа 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), которая возводит число a в...

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

16
4335 / 1467 / 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
Эксперт JavaЭксперт С++
8360 / 3581 / 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
20 / 20 / 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
Эксперт С++
4709 / 2534 / 753
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 20:06 5
&Alex&, Случайно не длинная арифметика Вас интерисует, тогда может быть все намного проще.
0
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 20:11  [ТС] 6
Цитата Сообщение от valeriikozlov Посмотреть сообщение
&Alex&, Случайно не длинная арифметика Вас интерисует, тогда может быть все намного проще.
Если Вы имели ввиду длинное число-то да.
0
Эксперт С++
4709 / 2534 / 753
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 20:27 7
Предлагаю Вам написать задание полностью. Тогда будет более полноценная помощь. То что Вы задумали, написав такие вопросы, правильно, но не оптимально.
0
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 20:50  [ТС] 8
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Предлагаю Вам написать задание полностью. Тогда будет более полноценная помощь. То что Вы задумали, написав такие вопросы, правильно, но не оптимально.
Задание тоже, только нужно для длинных чисел(напр.:1234567->1,2,3,4,5,6,7) и если можно то с помощью двух функций и на Си.
0
Эксперт С++
4709 / 2534 / 753
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 20:55 9
Так что Вам нужно в конечном итоге сделать? Два длинных числа сложить? Найти разность, перемножить? Или разделить. Или просто как Вы пишите перевести в массив? (На всякий случай сообщаю - сложить, отнять, умножить, разделить, найти целый остаток от деления - это очень просто).
0
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 20:59  [ТС] 10
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Так что Вам нужно в конечном итоге сделать? Два длинных числа сложить? Найти разность, перемножить? Или разделить. Или просто как Вы пишите перевести в массив? (На всякий случай сообщаю - сложить, отнять, умножить, разделить, найти целый остаток от деления - это очень просто).
Нужно одно длинное число(напр.57836931) перевести в несколько чисел: 5,7,8,3,6,9,3,1 и эти числа записать в массив. Для int получается, а для больших чисел-нет((
0
Эксперт С++
4709 / 2534 / 753
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:05 11
&Alex&, Давайте тогда окончально уточню.
Изначально число (long int) вводится с клавиатуры или из файла? Затем создается массив int и все цифры первого числа записываются в массив int. После этого значения массива int выводтся на экран или записываются в файл?
0
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 21:21  [ТС] 12
Цитата Сообщение от valeriikozlov Посмотреть сообщение
&Alex&, Давайте тогда окончально уточню.
Изначально число (long int) вводится с клавиатуры или из файла? Затем создается массив int и все цифры первого числа записываются в массив int. После этого значения массива int выводтся на экран или записываются в файл?
Всё правильно, только значение массива int выводится на экран.
0
Эксперт С++
4709 / 2534 / 753
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:29 13
Цитата Сообщение от &Alex& Посмотреть сообщение
Изначально число (long int) вводится с клавиатуры или из файла?
еще раз.
0
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 21:31  [ТС] 14
Цитата Сообщение от valeriikozlov Посмотреть сообщение
еще раз.
Число (long int) вводится с клавиатуры. Затем создается массив int и все цифры первого числа записываются в массив int. После этого значения массива int выводятся на экран.
0
Эксперт С++
4709 / 2534 / 753
Регистрация: 18.08.2009
Сообщений: 4,550
20.04.2010, 21:38 15
По-моему очень просто решается задача. Не нужно создавать даже число (long int).
Создаем сразу массив int, при вводе числа с клавиатуры, каждую цифру вводим сразу в массив int на свое место. По окончании ввода выводим все значения int-ского массива на экран.
0
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
20.04.2010, 21:41  [ТС] 16
Цитата Сообщение от valeriikozlov Посмотреть сообщение
По-моему очень просто решается задача. Не нужно создавать даже число (long int).
Создаем сразу массив int, при вводе числа с клавиатуры, каждую цифру вводим сразу в массив int на свое место. По окончании ввода выводим все значения int-ского массива на экран.
Так не пойдёт. Нужно обязательно вводить число типа long int.
0
Эксперт С++
4709 / 2534 / 753
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2010, 22:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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


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

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

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