Форум » Выполнение и анализ алгоритмов для исполнителей » тема 12 №184 » Ответить

тема 12 №184

elpov06: Здравствуйте, помогите пожалуйста разобраться с номером 184 задание 12. Хотела программу написать на С++ как в примерах, но ничего не получается, подскажите пожалуйста в чем моя ошибка. Я понимаю, что некоторые задания всегда делали на листочке и это можно, но все же. получилась программа [pre2]#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; }[/pre2]

Ответов - 1

Поляков: Вот правильное решение: [pre2] #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; }[/pre2]Если вы в теле цикла объявляете переменную (int p777 = ...), то вы создаете другую переменную, локальную для цикла.



полная версия страницы