| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
#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[fwhite]=='w') 
                        fwhite++; 
                else if(str[fwhite]=='b') 
                { 
                        if(fwhite!=fbule) 
                        {swp(str,fwhite,fbule);} 
                        fwhite++; 
                        fbule++; 
                        number++; 
                } 
                else 
                { 
                        while(fwhite<fred) 
                        { 
                                if(str[fwhite]=='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[x];   
         str[x] = str[y];   
         str[y] = tmp;   
         cout<<x<<" swaps with "<<y<<endl;   
}  
这个问题是原来在运行程序的时候,没有退出那个运行的程序,就是运行完没有回车或输入其他字符,导致那个exe文件没有关闭也就无法写入新的代码。重启VC就可以重新编译运行了,当然也可以选择到任务管理器里去把那个exe的进程关闭。 
 
 
 |   
- 
 
 
 
 
 
 
 
 |