三色旗问题,大佬看一下运行不了
#include<iostream>#include<string>
using namespace std;
int changeFlag(string &str);
void swp(string &str,int x,int y);
void main()
{
cout<<"Pleaseinput the dutch flags"<<endl;
string str;
cin>>str;
int n=changeFlag(str);
cout<<str<<endl;
cout<<n<<endl;
}
int changeFlag(string &str){
int nlength=str.length();
int fbule=0;
int fwhite=0;
int fred=nlength-1;
int number=0;
while(fwhite<fred)
{
if(str=='w')
fwhite++;
else if(str=='b')
{
if(fwhite!=fbule)
{swp(str,fwhite,fbule);}
fwhite++;
fbule++;
number++;
}
else
{
while(fwhite<fred)
{
if(str=='r')
{if(fwhite!=fred)
{swp(str,fwhite,fred);}
fwhite++;
fred--;
number++;
}
}
}
return number;
}
}
void swp(string &str,int x,int y)
{
char tmp;
tmp = str;
str = str;
str = tmp;
cout<<x<<" swaps with "<<y<<endl;
}
之前的1.exe还在进程里没有关闭,关了vs重新打开看看,或重起电脑 这个问题是原来在运行程序的时候,没有退出那个运行的程序,就是运行完没有回车或输入其他字符,导致那个exe文件没有关闭也就无法写入新的代码。重启VC就可以重新编译运行了,当然也可以选择到任务管理器里去把那个exe的进程关闭。 ba21 发表于 2018-1-14 14:02
之前的1.exe还在进程里没有关闭,关了vs重新打开看看,或重起电脑
大神再帮我看一下算法好像有问题
页:
[1]