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

Наибольшая цифра числа - C++

Восстановить пароль Регистрация
 
trans967
6 / 2 / 1
Регистрация: 23.04.2013
Сообщений: 178
11.11.2013, 18:08     Наибольшая цифра числа #1
Помогите пожалуйста, надо решить задачу:
Пользователь вводит число, а программа вычёркивает из этого числа самую большую цифру и выводит число без неё.
ПОжалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2013, 18:08     Наибольшая цифра числа
Посмотрите здесь:

Выяснить, входит ли цифра 3 в запись числа n2 C++
если старшая цифра числа четная то все числа стоящие на четных позиция заменить... C++
C++ Дано натуральное число с различными цифрами. Определить, максимальная цифра числа расположена ближе к началу или концу числа
C++ Определить, максимальная цифра числа расположена ближе к началу или концу числа
Наибольшая целая степень двойки, не превосходящая заданного числа n C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
11.11.2013, 18:20     Наибольшая цифра числа #2
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
#include <tchar.h>
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    std::cout << "ENTER A NUMBER: ";
    std::string input;
    std::cin >> input;
    if(input.empty())
    {
        std::cout << "ENTER SOMETHINK IDIOT! :-)" << std::endl;
        return -1;
    }
 
    std::vector<int> digits;
    for(auto it=input.begin();it != input.end();it++)
    {
        std::stringstream ss;
        ss << *it;
        int digit;
        ss >> digit;
        digits.push_back(digit);
    }
    
    digits.erase(std::max_element(digits.begin(),digits.end()));
 
    std::cout << "RESULT NUMBER: ";
    for(auto it=digits.begin();it != digits.end();it++)
        std::cout << *it;
    std::cout << std::endl;
 
    return 0;
}
Добавлено через 21 секунду
P.S.: с тебя пиво
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
11.11.2013, 18:28     Наибольшая цифра числа #3
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
#include <iostream>
#include <string>
using namespace std;
 
 
 
int main(int argc, char *argv[])
{
    string a;
    cin >> a;
    char b = a[0];
    for (int i=1; i < a.length(); ++i)
        if (a[i]>b)
            b = a[i];
    size_t first = a.find(b);
    while (first != string::npos)
    {
        a.erase(first, 1);
        first = a.find(b);
    }
    cout << a<< endl;
    system("pause");
    return 0;
}
Добавлено через 6 минут
newbie666, а как ввести пустую строку?
trans967
6 / 2 / 1
Регистрация: 23.04.2013
Сообщений: 178
11.11.2013, 19:45  [ТС]     Наибольшая цифра числа #4
я не понял вашей программы
мне надо просто через while, без for
Anton_Kretov
 Аватар для Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
11.11.2013, 20:33     Наибольшая цифра числа #5
Цитата Сообщение от trans967 Посмотреть сообщение
я не понял вашей программы
мне надо просто через while, без for
Вам религия не позволяет использовать for? Сейчас вам кину код especially на while.

Добавлено через 7 минут
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
#include <iostream>
#include <cstdio>
 
using namespace std;
 
 
int main()
{
    char testString[20];
    cout << "Enter number: ";
    gets(testString);
    char *cp = testString;
 
    int maxNumber = 0;
    int maxIndex = 0;
 
    for(register int i = 0; cp[i]; i++) {
        if(cp[i] > maxNumber) {
            maxNumber = cp[i];
            maxIndex = i;
        }
    }
 
    cp[maxIndex] = '\0';
    cout << "\n" << "The number is: " << cp;
 
    return 0;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
11.11.2013, 21:03     Наибольшая цифра числа #6
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
кину код especially на while.
и где же? вижу код с for'ом. Еще и register зачем-то приплели.
Anton_Kretov
 Аватар для Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
11.11.2013, 21:26     Наибольшая цифра числа #7
Цитата Сообщение от Tulosba Посмотреть сообщение
и где же? вижу код с for'ом. Еще и register зачем-то приплели.
Регистер пусть будет, вещь хорошая. А про while действительно, забыл. Правда получится "плохая аналогия for".

Добавлено через 3 минуты
C++
1
2
3
4
5
6
for(register int i = 0; cp[i]; i++) {
        if(cp[i] > maxNumber) {
            maxNumber = cp[i];
            maxIndex = i;
        }
    }
Меняем на:

C++
1
2
3
4
5
6
7
8
int i = 0;
 while(cp[i]) {
    if(cp[i] > maxNumber) {
        maxNumber = cp[i];
        maxIndex = i;
    }
    i++;
 }
Tulosba
11.11.2013, 21:31
  #8

Не по теме:

Цитата Сообщение от Anton_Kretov Посмотреть сообщение
Регистер пусть будет, вещь хорошая.
ORLY?

Anton_Kretov
 Аватар для Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
11.11.2013, 21:40     Наибольшая цифра числа #9
Цитата Сообщение от Tulosba Посмотреть сообщение

Не по теме:


ORLY?

А теперь, пожалуйста, по-русски.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.11.2013, 00:52     Наибольшая цифра числа #10
Anton_Kretov, про register еще 10 лет назад было сказано.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 07:52     Наибольшая цифра числа
Еще ссылки по теме:

C++ Даны натуральные числа n, k. Проверить, есть ли в записи числа nk цифра m
C++ Цифра из числа
Даны натуральные числа n, k. Проверить, есть ли в записи числа n (в степени k) цифра m C++

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

Или воспользуйтесь поиском по форуму:
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
12.11.2013, 07:52     Наибольшая цифра числа #11
trans967, переделал как Вы и просили
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;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a, copy, temp;
    cin >> a;
    copy = a;
    int largest = 0;
    while (copy > 0)
    {
        temp = copy % 10;
        if (temp > largest)
            largest = temp;
        copy /= 10;
    }
    copy = 0;
    while (a > 0)
    {
        temp = a % 10;
        if (temp != largest)
            copy = copy * 10 + temp;
        a = a / 10;
    }
 
    cout << copy << endl;
    std::system("pause");
    return 0;
}
Yandex
Объявления
12.11.2013, 07:52     Наибольшая цифра числа
Ответ Создать тему
Опции темы

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