不失微笑 发表于 2018-1-14 13:33:32

三色旗问题,大佬看一下运行不了

#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;
}

ba21 发表于 2018-1-14 14:02:03

之前的1.exe还在进程里没有关闭,关了vs重新打开看看,或重起电脑

orino 发表于 2018-1-14 14:19:58

这个问题是原来在运行程序的时候,没有退出那个运行的程序,就是运行完没有回车或输入其他字符,导致那个exe文件没有关闭也就无法写入新的代码。重启VC就可以重新编译运行了,当然也可以选择到任务管理器里去把那个exe的进程关闭。

不失微笑 发表于 2018-1-14 17:00:36

ba21 发表于 2018-1-14 14:02
之前的1.exe还在进程里没有关闭,关了vs重新打开看看,或重起电脑

大神再帮我看一下算法好像有问题
页: [1]
查看完整版本: 三色旗问题,大佬看一下运行不了