10.01.2021
Новый выпуск журнала Автоматизация и Программирование.
08.12.2020
Новые видео и статья Таблицы в HTML.
03.12.2020
Новый выпуск журнала Автоматизация и Программирование.
15.11.2020
Новые видео и статья Процедура Str.
25.10.2020
Добавлен курс Как стать веб-разработчиком.
Раздел: Задачи / Простейшие /
Как заменить цифру в числе
Условие задачи 2.25
Задача 2.25
Дано натуральное число X. Заменить в нём все цифры 3 на цифру 5. Вывести на экран изменённое число или сообщение НЕТ, если изменений не было.
Если вы подзабыли, что такое натуральное число, то читайте здесь.
Похожую задачу мы решали здесь. Точнее, она была не очень похожа - там надо было определить, оканчивается ли число на 3. Можно пойти по тому же пути, чтобы проверить все цифры в числе. Но это будет не очень понятно и удобно.
Поэтому сегодня мы пойдём другим путём - преобразуем число в строку, а затем будем в цикле перебирать все символы в строке, заменяя 3 на 5. После можно преобразовать строку обратно в число (впрочем, это делать необязательно, так как нам не нужно выполнять никаких действий с числом, кроме вывода на экран, а на экран можно вывести и строку).
Для преобразования числа в строку в Паскале надо подключить модуль SysUtils, а в С++ - файл <sstream>.
ВАЖНО!
Чтобы не усложнять код, в программе не выполняются проверки ввода. Если будет введено слишком большое число, то преобразование его в строку будет невозможно и программа завершится аварийно.
program mytask; uses SysUtils; //!!! Подключить этот модуль //**************************************************************** // КОНСТАНТЫ //**************************************************************** const OLD_NUM = '3'; //Цифра, которую надо заменить NEW_NUM = '5'; //Цифра, которой надо заменить цифру OLD_NUM //**************************************************************** // ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ //**************************************************************** var Change : boolean = FALSE; i : WORD; Num : DWORD; str : string; SNum : string = ''; //**************************************************************** // ОСНОВНАЯ ПРОГРАММА //**************************************************************** begin Write('Number = '); ReadLn(Num); str := IntToStr(Num); for i := 1 to Length(str) do if str[i] = OLD_NUM then begin SNum := SNum + NEW_NUM; Change := TRUE; end else SNum := SNum + str[i]; if Change then WriteLn('New Number = ', SNum) else WriteLn('The number has not changed'); WriteLn('The end. Press ENTER...'); ReadLn; end.
#include <cstdlib> #include <iostream> #include <sstream> //Подключить этот файл using namespace std; //**************************************************************** // КОНСТАНТЫ //**************************************************************** const char OLD_NUM = '3'; //Цифра, которую надо заменить const char NEW_NUM = '5'; //Цифра, которой надо заменить цифру OLD_NUM //**************************************************************** // ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ //**************************************************************** bool Change = false; unsigned short int i; unsigned int Num; ostringstream Str; ostringstream SNum; string sss; //**************************************************************** // ОСНОВНАЯ ПРОГРАММА //**************************************************************** int main(int argc, char *argv[]) { Str.clear(); SNum.clear(); cout << "Number = "; cin >> Num; cout << endl; Str << Num; sss = Str.str(); i = 0; while (i < sss.length()) { if (sss[i] == OLD_NUM) { SNum << NEW_NUM; Change = true; } else SNum << sss[i]; i++; } if (Change) cout << "New Number = " << SNum.str() << endl; else cout << "The number has not changed" << endl; system("PAUSE"); return EXIT_SUCCESS; }

Подписаться на канал в YouTube
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |
![]() |
Основы C++
C++ - это один из самых популярных языков программирования. Не важно, на каком языке программируете лично вы. Но, если вы хотя бы в общих чертах не знаете С++, то это большой пробел в вашем образовании, который надо восполнить как можно быстрее... Подробнее... |