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

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

Войти
Регистрация
Восстановить пароль
 
RAZVOR
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 9
#1

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

31.01.2013, 20:18. Просмотров 541. Ответов 14
Метки нет (Все метки)

Доброго времени суток, гуглил и ненашёл, как если у меня есть например int v=1234, перебрать его по цифре те чтобы было 1 2 3 4 ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2013, 20:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с цифрами в числе (C++):

Перестановка цифр в числе таким образом, чтобы получить наименьшее число записанное этими же цифрами - C++
Дано: в данном натуральном числе переставить цифры таким образом, чтобы получилось наименьшее число записанное этими же цифрами. ...

В данном натуральном числе переставить цифры таким образом, чтобы получилось наименьшее число записанное этими же цифрами - C++
2. В данном натуральном числе переставить цифры таким образом, чтобы получилось наименьшее число записанное этими же цифрами.

В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число, записанное этими цифрами - C++
1)В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число, записанное этими же цифрами. 2)Дано...

Работа с цифрами - C++
Привет всем, помогите пожалуйста решить задачу. Заменить в натуральном числе все цифры 7 цифрами 8 и удалить из записи числа все единицы,...

Работа с цифрами - C++
Не могу понять, что в программе не так. Алгоритм правильный, но расчет не идет. Исходное задание: Напишите программу, принимающую с...

работа с цифрами заданного Числа - C++
С++. Как можно обращаться к нужной цифре в числе. Например есть число 34562, а я хочу сложить 3 и 5 цифру, или 1-ую с 4-ой, как это можно...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Retpyt
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 7
31.01.2013, 20:41 #2
ну можно из (1234-234)/1000 и т д. код лень писать. если хочешь могу написать прогу или сам разберешься дальше?тут по этому алгоритму действовать
0
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;
}
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.01.2013, 20:47 #4
RAZVOR, перевести в строку и работать как c char`ами
0
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;
}
а что означает %?
0
Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
31.01.2013, 20:49 #6
Цитата Сообщение от Retpyt Посмотреть сообщение
а что означает %?
остаток от деления
0
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
 
}
0
coloc
погромист
410 / 246 / 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 минуту
Уже переработаете, как вам нужно
0
RAZVOR
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 9
31.01.2013, 21:51  [ТС] #9
coloc,
Это както слишком жестко неужели нет функции выбирающей из int цифру с определённой позицией?
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.01.2013, 22:36 #10
RAZVOR, сам напиши.
0
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]//как это приобразовать в число?
}
0
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;
}
0
go
Эксперт C++
3586 / 1366 / 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'
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");
}
0
RAZVOR
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 9
01.02.2013, 22:44  [ТС] #15
Спосибо но уже решил спс всем кто отвечал
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2013, 22:44
Привет! Вот еще темы с ответами:

Работа со звуком (как звуковые спектры определённого звукового файла записать цифрами в массив) - C++
как звуковые спектры определённого звукового файла записать цифрами в массив.

Возвести во введенном натуральном числе каждую цифру в степень, соответствующую ее позиции в числе - C++
Возвести во введенном натуральном числе каждую цифру в степень, соответствующую ее позиции в числе. Найти сумму полученных величин. ...

задача с цифрами - C++
a) Дано трёхзначное число. Определить, есть ли среди его цифр одинаковые? b) Дано натуральное число с различными цифрами. Определить,...

Уравнение с пропущенными цифрами - C++
Нужна программа на Си Помогите пожалуйста Добавлено через 33 минуты upupupup


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.02.2013, 22:44
Ответ Создать тему
Опции темы

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