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

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

Войти
Регистрация
Восстановить пароль
 
Timohha
 Аватар для Timohha
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 3
03.11.2009, 15:48     Определить номер цифры в числе #1
Дано натуральное число. Определить номер некоторой заданной цифры в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0. Если таких цифр несколько, должен быть определен номер первой из них. Помогите, пожалуйста, никак не могу сообразить!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2009, 15:48     Определить номер цифры в числе
Посмотрите здесь:

C++ Определить порядковый номер его максимальной цифры в числе
Задача:Определить повторяются Цифры в Числе или нет... C++
Определить количество повторений в числе заданной цифры C++
C++ дано натуральное число. Определить номер цифры 8 в нем
C++ Дано натуральное число. Определить номер цифры «8»
Определить номер максимальной по величине цифры C++
Определить, какие цифры встречаются в числе несколько раз C++
Определить порядковый номер цифры с максимальной величиной C++
Определить есть ли равные цифры в числе C++
В четырехзначном числе определить сумму цифр, максимальную и минимальную цифры C++
Определить, имеются ли в случайном четырехзначном числе одинаковые цифры C++
C++ Определить, есть ли в заданном натуральном числе указанные цифры

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 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; }

не проверялось, ( эту задачу оставляю тебе (: )
но вроде похоже
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9384 / 5434 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
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;
    }
}
Timohha
 Аватар для Timohha
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 3
03.11.2009, 16:34  [ТС]     Определить номер цифры в числе #4
Спасибо!!! Только есть одно но... Я печатаю в оболочке MinGW, и у нас определенные требования к содержанию проги, то есть ничего такого, чего мы не изучали, там быть не должно( Не могли бы вы написать алгоритм выполнения этой программы? Пытался разобраться по вышенапечатанной программе, но не смог, так как не знаю многих функций, которые там написаны
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9384 / 5434 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
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...
Ну или напишите, что именно не понятно.
Timohha
 Аватар для Timohha
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 3
04.11.2009, 18:01  [ТС]     Определить номер цифры в числе #6
Такой вопрос: для чего нужны переменные pos и num. Я так понял, они вспомогательные?
Yandex
Объявления
04.11.2009, 18:01     Определить номер цифры в числе
Ответ Создать тему
Опции темы

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