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

Работа с цифрами в числе - C++

Восстановить пароль Регистрация
 
RAZVOR
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 9
31.01.2013, 20:18     Работа с цифрами в числе #1
Доброго времени суток, гуглил и ненашёл, как если у меня есть например int v=1234, перебрать его по цифре те чтобы было 1 2 3 4 ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Retpyt
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 7
31.01.2013, 20:41     Работа с цифрами в числе #2
ну можно из (1234-234)/1000 и т д. код лень писать. если хочешь могу написать прогу или сам разберешься дальше?тут по этому алгоритму действовать
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
31.01.2013, 20:46     Работа с цифрами в числе #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
void recursion(int n)
{
     if(n!=0){
       cout<<n%10<<" ";
       recursion(n/10);
}
       }
       
int main()
{
    int v=1234;
    recursion(v);
    system("pause>0");
    return 0;
}
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.01.2013, 20:47     Работа с цифрами в числе #4
RAZVOR, перевести в строку и работать как c char`ами
Retpyt
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 7
31.01.2013, 20:47     Работа с цифрами в числе #5
Цитата Сообщение от The_bolT Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
void recursion(int n)
{
     if(n!=0){
       cout<<n%10<<" ";
       recursion(n/10);
}
       }
       
int main()
{
    int v=1234;
    recursion(v);
    system("pause>0");
    return 0;
}
а что означает %?
Евгений89
 Аватар для Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.01.2013, 20:49     Работа с цифрами в числе #6
Цитата Сообщение от Retpyt Посмотреть сообщение
а что означает %?
остаток от деления
RAZVOR
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 9
31.01.2013, 21:17  [ТС]     Работа с цифрами в числе #7
Retpyt,
Непонял, мне надо примерно так
C++
1
2
3
4
5
6
int l=1234;
for() //чтото 
{
//1,2,3,4
 
}
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
31.01.2013, 21:33     Работа с цифрами в числе #8
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <iostream>
#include <stdlib.h>
 
inline int _mod (int source, int Nmod) { return source % Nmod; }
inline int _div (int source, int Ndiv) { return (source - _mod (source, Ndiv)) / Ndiv; }
void foo (int numbers, int value);
void foo2 (int value);
 
 
int main () {
    int value;
    int numbers;
    system ("color 4");
    std::cin >> value;
    
    if (value > 0 && value < 10)
        numbers = 1;        
    if (value >= 10 && value < 100)
        numbers = 2;
    if (value >= 100 && value < 1000)
        numbers = 3;
    if (value >= 1000 && value < 10000)
        numbers = 4;
 
    foo (numbers, value);
    std::cout << std::endl;
    system ("PAUSE");
    return 0;
}
 
void foo (int numbers, int value) {
    int n1, n2, n3, n4;
    switch (numbers) {
        case 1:
            foo2 (value);
            break;
            
        case 2:
            n1 = _div (value, 10); //first number
            foo2 (n1);
            n2 = _div (_mod (value, 10), 1); //second number
            foo2 (n2);
            break;
            
        case 3:
            n1 = _div (value, 100); //first number
            foo2 (n1);
            n2 = _div (_mod (value, 100), 10); //second number
            foo2 (n2);
            n3 = _div (_mod (value, 10), 1); //3-rd number
            foo2 (n3);
            break;
            
        case 4:
            n1 = _div (value, 1000); //first number
            foo2 (n1);
            n2 = _div (_mod (value, 1000), 100); //second number
            foo2 (n2);
            n3 = _div (_mod (value, 100), 10); //3-rd number
            foo2 (n3);
            n4 = _mod (value, 10); //last number
            foo2 (n4);
            break;
    }
}
 
 
void foo2 (int value) {
    switch (value) {
        case 1:
            std::cout << " ONE ";
            break;
            
        case 2:
            std::cout << " TWO ";
            break;
            
        case 3:
            std::cout << " THREE ";
            break;
            
        case 4:
            std::cout << " FOUR ";
            break;
            
        case 5:
            std::cout << " FIVE ";
            break;
            
        case 6:
            std::cout << " SIX ";
            break;
            
        case 7:
            std::cout << " SEVEN ";
            break;
        
        case 8:
            std::cout << " EIGHT ";
            break;
            
        case 9:
            std::cout << " NINE ";
            break;
            
        case 0:
            std::cout << " NULL ";
            break;
    }
}
Добавлено через 1 минуту
Уже переработаете, как вам нужно
RAZVOR
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 9
31.01.2013, 21:51  [ТС]     Работа с цифрами в числе #9
coloc,
Это както слишком жестко неужели нет функции выбирающей из int цифру с определённой позицией?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.01.2013, 22:36     Работа с цифрами в числе #10
RAZVOR, сам напиши.
RAZVOR
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 9
31.01.2013, 22:46  [ТС]     Работа с цифрами в числе #11
go,
легко сказать,
подумал над решением если int будет string
C++
1
2
3
4
string e=1234;
for(int i=0;i<e.size();i++){
e[i]//как это приобразовать в число?
}
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
31.01.2013, 22:50     Работа с цифрами в числе #12
А чем вас мой вариант не устраивает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
void recursion(int n)
{
     if(n!=0){
       cout<<n%10<<" ";
       recursion(n/10);
}
       }
       
int main()
{
    int v=1234;
    recursion(v);
    system("pause>0");
    return 0;
}
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.01.2013, 22:51     Работа с цифрами в числе #13
Цитата Сообщение от RAZVOR Посмотреть сообщение
string e=1234;
бред написан.
Цитата Сообщение от RAZVOR Посмотреть сообщение
//как это приобразовать в число?
Это цифра

Цитата Сообщение от RAZVOR Посмотреть сообщение
e[i]
C++
1
e[i] - '0'
Retpyt
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 7
01.02.2013, 21:45     Работа с цифрами в числе #14
вот мне друг помог=)
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
#include <iostream>
using namespace std;
void main ()
{
 setlocale(0,"");
 int a,c;
 cout<<"Введите число ";
 cin>>a;
 int i=1;
 c=2;
 while(i>0)
 {
 while(i<=a)
 {
  i=10*i;
 }
 i=i/10;
 if(i>0)
 {
 c=a/i;
 cout<<c<<endl;
 a=a-c*i;
 }
 else
 {
  break;
 }
 }
 system("pause");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2013, 22:44     Работа с цифрами в числе
Еще ссылки по теме:

В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число, записанное этими цифрами C++
C++ В данном натуральном числе переставить цифры таким образом, чтобы получилось наименьшее число записанное этими же цифрами
C++ Работа со звуком (как звуковые спектры определённого звукового файла записать цифрами в массив)

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

Или воспользуйтесь поиском по форуму:
RAZVOR
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 9
01.02.2013, 22:44  [ТС]     Работа с цифрами в числе #15
Спосибо но уже решил спс всем кто отвечал
Yandex
Объявления
01.02.2013, 22:44     Работа с цифрами в числе
Ответ Создать тему
Опции темы

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