Автор | Сообщение |
|
Отправлено: 12.01.21 09:30. Заголовок: тема 12 №184
Здравствуйте, помогите пожалуйста разобраться с номером 184 задание 12. Хотела программу написать на С++ как в примерах, но ничего не получается, подскажите пожалуйста в чем моя ошибка. Я понимаю, что некоторые задания всегда делали на листочке и это можно, но все же. получилась программа #include<iostream> using namespace std; int main() { string s(170, '7'); cout << s << endl; int p777= s.find("777"); int p77= s.find("77"); int p22= s.find("22"); while( p777 != string::npos ) { s.replace( p77, 2, "2" ); s.replace( p22, 2, "7" ); int p77= s.find("77"); int p22= s.find("22"); int p777= s.find("777"); } cout << s; }
|
|
|
Ответов - 1
[только новые]
|
|
|
| Администратор
|
Сообщение: 2329
|
|
Отправлено: 19.01.21 20:42. Заголовок: Вот правильное решен..
Вот правильное решение: #include<iostream> using namespace std; int main() { string s(170, '7'); int p777= s.find("777"); while( p777 != string::npos ) { int p77 = s.find("77"); s.replace( p77, 2, "2" ); int p22 = s.find("22"); if( p22 != string::npos ) s.replace( p22, 2, "7" ); p777= s.find("777"); } cout << s; } Если вы в теле цикла объявляете переменную (int p777 = ...), то вы создаете другую переменную, локальную для цикла.
|
|
|