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

Замена последней цифры на значение наименьшей цифры в записи числа N - C++

Войти
Регистрация
Восстановить пароль
 
spectrum988
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 47
19.02.2014, 00:20     Замена последней цифры на значение наименьшей цифры в записи числа N #1
Ошибка в задании
Условие:Дано натуральное число N. Получить новое число М, которое образуется из числа N путем замены последней цифры на значение наименьшей цифры в записи числа N. Пример. N = 128 452, М = 128 451.

Для начала я делал проверку на то,пустое ли поле.После чего Edit1->Text = N.Length(); Если нет то я нахожу Edit1->Text = N.Length();(не знаю правильно ли я это сформулировал)После чего я хотел перебирать строку на нахождение минимального символа,но не знаю как это правильно реализовать.Помогите пожалуйста.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
float m;
int i,min;
AnsiString N = Edit1->Text;
if(N == "")
Edit1->Text = "Введите N";
Edit2->Text = "Ошибка";
else Edit1->Text = N.Length();
for(i=2;i<длина строки;i++)
{
min=N[1];
if (N[i]<min)
 {
  N[i]=min;
 }
}
N[длина строки-1]=min;
min=N[длина строки-1];
Edit2->Text=StrToInt(N);
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2014, 00:20     Замена последней цифры на значение наименьшей цифры в записи числа N
Посмотрите здесь:

Сумма первой и последней цифры числа C++
Есть в записи числа m цифры, которые совпадают с цифрами в записи числа n C++
C++ дано натуральное число пи. найти сумму первой и последней цифры этого числа.
C++ Дано натуральное число. Определить значение наибольшей нечетной цифры в записи числа
Исключить из числа цифры, стоящие между первой и последней цифрой числа. Использовать классы C++
C++ Дано натуральное число л. Найти сумму первой и последней цифры этого числа
Дано натуральное число n. Найти сумму первой и последней цифры этого числа C++
Напишите процедуру, которая выводит на экран в столбик все цифры переданного ей числа, начиная с последней C++
C++ Проверить, есть ли в записи числа m цифры, совпадающие с цифрами в записи числа n
Найти сумму цифр заданного числа без учёта последней цифры через цикл while C++
C++ Вывод наибольшей и наименьшей цифры из четырехзначного числа
C++ Используя switch выполнить действия зависящие от последней цифры числа

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
19.02.2014, 00:40     Замена последней цифры на значение наименьшей цифры в записи числа N #2
spectrum988, разделите число сначала по модулю на 10, потом просто на 10.
Сравнивайте числа полученные от деления по модулю начиная со второго с конца.
Останется дело за заменой.
spectrum988
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 47
19.02.2014, 01:17  [ТС]     Замена последней цифры на значение наименьшей цифры в записи числа N #3
Спасибо большое,скажите,а через мой метод возможно решение ?
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
19.02.2014, 02:18     Замена последней цифры на значение наименьшей цифры в записи числа N #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
spectrum988, можно, вашу логику я понимаю, но реализацию неочень.
Первый элемент лучше присвоить min до цикла.
Могу предложить подобный вариант, используя строку:
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>
#include <string>
 
int main()
{
    std::string str, temp;
    int length, min;
    std::cout << "Enter number: ";
    std::cin >> str;
    
    length = str.size() - 1; //Количество "чисел"
    temp = str[0]; //Первый элемент "числа"
    min = atoi(temp.c_str()); //Присваивание min первого элемента
    
    for(int i = 0; i < length; i++)
    {
        temp = str[i];
        if(min >= atoi(temp.c_str()))
        {
            min = atoi(temp.c_str());
            str[length] = str[i]; //Замена последнего элемента
        }
    }
    
    std::cout << str << "\n\n";
    
    system("pause");
    return 0;
}
spectrum988
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 47
19.02.2014, 20:59  [ТС]     Замена последней цифры на значение наименьшей цифры в записи числа N #5
Да да,ваш код правилен,я тоже вижу,что вы поняли суть попыток моего решения.Cпасибо, я разобрался уже с заданием,буквально чуток было не так!
Yandex
Объявления
19.02.2014, 20:59     Замена последней цифры на значение наименьшей цифры в записи числа N
Ответ Создать тему
Опции темы

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