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

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.84
AndreyAndroid
1 / 1 / 0
Регистрация: 15.01.2011
Сообщений: 132
#1

как работать с каждой цифрой четырехзначного числа по отдельности. - C++

04.09.2011, 20:18. Просмотров 2461. Ответов 29
Метки нет (Все метки)

Вот есть задача на с++. Но не знаю с чего начать... как работать с каждой цифрой четырехзначного числа по отдельности.
0
Миниатюры
как работать с каждой цифрой четырехзначного числа по отдельности.  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2011, 20:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос как работать с каждой цифрой четырехзначного числа по отдельности. (C++):

Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми - C++
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми. ...

Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми - C++
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми. ...

Исключить из числа цифры, стоящие между первой и последней цифрой числа. Использовать классы - C++
Исключить из числа цифры, стоящие между первой и последней цифрой числа #include<stdio.h> #include<stdlib.h> #include<conio.h> ...

Записать пятизначное число в строку, с отступом в 3 пробела между каждой цифрой - C++
Потрібно написать програму , яка записує пятницифреве число в рядок , з відступом в 3 пробіли між кожною цифрою. На вході маємо ціле...

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

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

29
TheAthlete
153 / 153 / 13
Регистрация: 31.08.2010
Сообщений: 535
04.09.2011, 21:16 #2
просьба пользоваться поисковыми системами. Яндекс на запрос "получить все цифры числа" в первой строке выдал нужную информацию

http://ru.wikibooks.org/wiki/%D1%E8%...EB%E5%ED%E8%FF

раздел "преобразование чисел"

для примера:

исходное число 2573

2573 / 10 = 257, остаток 3
257 / 10 = 25, остаток 7
25 / 10 = 2, остаток 5
2 / 10 = 0, остаток 2

в результате в остатке сохраняется наше значение (число читается с конца)
0
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
04.09.2011, 21:52 #3
C++
1
2
3
4
5
6
7
8
9
10
11
char s[5];
 
std::cin >> s;
 
for (char i = 0; i < 4; i++)
  s[i] = ((s[i] - '0') + 7) % 10;
 
std::swap(s[0], s[2]); // или он не в std?
std::swap(s[1], s[3]);
 
std::cout << s;
0
AndreyAndroid
1 / 1 / 0
Регистрация: 15.01.2011
Сообщений: 132
04.09.2011, 22:10  [ТС] #4
После 1 ответа всё стало ясно, и тут же была создана шивровалка. Расшифровку пока не делал... там всё ясно. Но код получился длинный и не такой как у iama. Не могли бы вы пояснить свой код?
0
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
04.09.2011, 22:12 #5
AndreyAndroid, я просто считываю число в строковом формате, где можно легко выделить каждый разряд, соответствующим образом обрабатываю. Если что-то конкретно непонятно, спрашивайте
0
AndreyAndroid
1 / 1 / 0
Регистрация: 15.01.2011
Сообщений: 132
04.09.2011, 22:15  [ТС] #6
Я учу с++ по книге. И там я ещё не встречал STD, квадратные скобки и char. Там это задание после 2 главы.
0
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
04.09.2011, 22:18 #7
AndreyAndroid, геморно это делать только одним числом.
0
AndreyAndroid
1 / 1 / 0
Регистрация: 15.01.2011
Сообщений: 132
04.09.2011, 22:23  [ТС] #8
Я объявил 5 переменных. После сделал считывание числа, а потом расчёты каждой из 4 цифр. Ну а там сложение и деление и вывод переменных в поредке задачи.
0
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
04.09.2011, 22:33 #9
AndreyAndroid, так работает? Что же еще нужно?
0
AndreyAndroid
1 / 1 / 0
Регистрация: 15.01.2011
Сообщений: 132
04.09.2011, 22:49  [ТС] #10
Ваш код намного меньше, а следовательно мой нужно доработать и сократить. Но как видимо до вашего способа мне ещё долго учиться.
0
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
04.09.2011, 22:52 #11
AndreyAndroid, если бы я писал числами - тоже вышло бы больше. Лучше сначала прочитать всю книгу, потом уже практиковаться, или найти лучшую книгу
0
AndreyAndroid
1 / 1 / 0
Регистрация: 15.01.2011
Сообщений: 132
04.09.2011, 23:10  [ТС] #12
Книга Дейтел и Дейтел - Как программировать на С++ в ней 1000 страниц и без практики думаю не освоить. Там задачи после каждой главы.
0
TheAthlete
153 / 153 / 13
Регистрация: 31.08.2010
Сообщений: 535
04.09.2011, 23:52 #13
по-моему все просто

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>
#include <vector>
#include <algorithm>
#include <iterator>
 
using std::cout; using std::cin;
using std::endl; using std::vector;
using std::copy; using std::ostream_iterator;
 
int main() {
  int number;
  cout << "Enter number: ";
  cin >> number;
 
  // объявляем вектор для хранения даннвх
  vector<int> vec;
  // объявляем цифру
  int chastnoe = 0, ostatok = 0;
 
  do {
    chastnoe = number / 10;
    ostatok = number % 10;
    number = chastnoe;
    vec.push_back(ostatok);
  } while(chastnoe); // != 0
 
  copy(vec.rbegin(), vec.rend(), ostream_iterator<int>(cout, " "));
 
  return 0;
}
в результате в векторе лежат наши цифры
0
AndreyAndroid
1 / 1 / 0
Регистрация: 15.01.2011
Сообщений: 132
05.09.2011, 00:03  [ТС] #14
Да я все это пока ещё не знаю... хотя тут уже можно понять что к чему.
0
TheAthlete
153 / 153 / 13
Регистрация: 31.08.2010
Сообщений: 535
05.09.2011, 10:05 #15
Можно попроще через массивы:

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
#include <iostream>
 
using std::cout; 
using std::cin;
 
int main() {
  int number;
  cout << "Enter number: ";
  cin >> number;
 
  // объявляем вектор для хранения даннвх
  const size_t N = 4;
  int arr[N];
  // объявляем цифру
  int chastnoe = 0, ostatok = 0, i = 0;
 
  do {
    chastnoe = number / 10;
    ostatok = number % 10;
    number = chastnoe;
    arr[i] = ostatok;
    ++i;
  } while(chastnoe); // != 0
 
  for (size_t i = 0; i != N; ++i)
    cout << arr[i] << " ";
 
  return 0;
}
Хотя проще это на первый взгляд.
Здесь есть несколько недостатков по сравнению с прошлым вариантом:
1) здесь можно задать только четырехзначное число (значность числа определяется с помощью N)
2) не проверяется выход за пределы массива (вектор увеличивается автоматически)

Поэтому могу посоветовать почитать книги
1) Стенли Б. Липпман, Жози Лажойе, Барбара Му - Язык программирования С++. Вводный курс. Четвертое издание.
2) Э. Кёниг, Б. My Эффективное программирование на C++ Серия C++ In-Depth, т.2

С одной стороны они предназначены для начинающих, но с другой стороны объясняют современный С++, начиная с первых глав рассказывать о стандартной библиотеке, как использовать вектора, строки (std::string) и т.д.
0
05.09.2011, 10:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2011, 10:05
Привет! Вот еще темы с ответами:

Произведение цифр введенного с клавиатуры четырехзначного числа - C++
Разработать программу, которая считает произведение цифр введенного с клавиатуры четырехзначного числа

Найти произведение цифр заданного четырехзначного числа - C++
Можно ли написать простую прогу на с++ без лишних операторов. mod и div eще не знаю. или нужно обходится сложными операциями. или...

Вывод наибольшей и наименьшей цифры из четырехзначного числа - C++
Задача такая: &quot;Пользователь вводит четырёхзначное число. Программа должна вывести наибольшую цифру этого числа и наименьшую цифру этого...

Найти сумму и произведение цифр четырехзначного числа - C++
Задано четырехзначное число. Найти сумму и произведение его цифр.помогите с написанием кода


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

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

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