С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Определить номер цифры в числе - C++

03.11.2009, 15:48. Просмотров 835. Ответов 5
Метки нет (Все метки)

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

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

Определить, повторяются ли цифры в числе - C++
Нужно ввести число и в результате получить сообщение повторяются цифры в числе или нет.Способ определения может быть любым. Число нужно...

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

Определить, есть ли в трехзначном числе одинаковые цифры - C++
Здравствуйте! Помогите написать программу на С++, чтобы она отображала есть ли в трехзначном числе одинаковые числа. Я сама новичок,...

Определить количество повторений в числе заданной цифры - C++
Дано натуральное число N. Определить кол-во повторений в числе заданной цифры.

Определить, есть ли в заданном натуральном числе указанные цифры - C++
В школе задали, кто знает как решить ? Спасибо. Дано натуральное число. Определить, есть ли в нем цифры а и b.

5
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
03.11.2009, 15:57 #2
псевдокод:

int i = 1234; - число
int search = 2; - что ищем
int n = 0; - номер
for ( ; i; i /= 10, n++) if (i % 10 == search) { n++; break; }

не проверялось, ( эту задачу оставляю тебе (: )
но вроде похоже
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,864
03.11.2009, 16:23 #3
Rififi, Не так немного. У Вас n лишний раз увеличивается, усли цифры совпали...

Timohha, вот так как-то:
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
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
 
int main(){
    int number, digit, pos, found, num;
    while ( 1 ) {
        cout << "Enter some number or 0 for quit: ";
        cin >> number;
        if ( !number )
            break;
        cout << "Enter digit to find in this number: ";
        cin >> digit;
        if ( digit < 0 || digit > 9 ){
            cout << "Wrong digit!" << endl;
            continue;
        }
        for ( num = number, pos = 1, found = 0; num > 0; num /= 10, pos++ ){
            if ( (num % 10) == digit ){
                found = pos;
                break;
            }
        }
        cout << "Digit " << digit << " is in " << found << " position at end of number " << number << endl;
    }
}
0
Timohha
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 3
03.11.2009, 16:34  [ТС] #4
Спасибо!!! Только есть одно но... Я печатаю в оболочке MinGW, и у нас определенные требования к содержанию проги, то есть ничего такого, чего мы не изучали, там быть не должно( Не могли бы вы написать алгоритм выполнения этой программы? Пытался разобраться по вышенапечатанной программе, но не смог, так как не знаю многих функций, которые там написаны
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,864
03.11.2009, 17:48 #5
Цитата Сообщение от easybudda Посмотреть сообщение
while ( 1 ) {
- бесконечный цикл
Цитата Сообщение от easybudda Посмотреть сообщение
if ( !number ) break;
- если number == 0 прервать цикл
Цитата Сообщение от easybudda Посмотреть сообщение
if ( digit < 0 || digit > 9 ){ cout << "Wrong digit!" << endl; continue;
- если "цифра" для поиска меньше 0 или больше 9 - выдать сообщение об ошибке и начать цикл сначала
num /= 10 то же, что num = num / 10
Цитата Сообщение от easybudda Посмотреть сообщение
if ( (num % 10) == digit ){ found = pos; break; }
- если остаток от деления num (или того, что от него осталось) на 10 равен искомой цифре, скопировать в found позицию pos, прервать цикл for...
Ну или напишите, что именно не понятно.
0
Timohha
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 3
04.11.2009, 18:01  [ТС] #6
Такой вопрос: для чего нужны переменные pos и num. Я так понял, они вспомогательные?
0
04.11.2009, 18:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2009, 18:01
Привет! Вот еще темы с ответами:

Определить, имеются ли в случайном четырехзначном числе одинаковые цифры - C++
Не получается преобразовать int в string, как это можно сделать? int n,i; string ch; srand(time(0)); n = rand() %...

Определить, какие цифры встречаются в числе несколько раз - C++
Здравствуйте! Помогите написать программу на С++ Ввести натуральное число и определить, какие цифры встречаются несколько раз. ...

В четырехзначном числе определить сумму цифр, максимальную и минимальную цифры - C++
нужно вести четырех значное число и определить : 1.Сумму цифр 2.найти максимальное и минимальное цифр 3. является ли число...

Определить номер максимальной по величине цифры - C++
помогите написать 2 программы на с++ (если можно попроще) 1)Определить номер максимальной по величине цифры. 2)Определить,...


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

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

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