educoderポインタと配列

3695 ワード

テーマの出所:educoderテーマのプログラミングは右側のエディタに関数Splitがあることを要求して、それは2つのパラメータarrとlenがあって、arrは1つの配列を指して、この配列の長さはlenです.
arr配列には1,0の2つの値しか含まれていません.この関数にコードを補充してください.この配列の0を配列の左側(すなわち、アドレス値の小さい側)、1を配列の右側に置いてください.
入力データは評価システムによって読み出され、Split関数に渡され、arrが指す配列の内容が出力されます.詳細はテストの説明を参照してください.
テスト説明プラットフォームでは、作成したコードをテストします.
期待入力:5 1 0 1 1予想出力:0 1 1 1 1 1
期待入力:3 0 1 0期待出力:0 1
各グループの入力には2行あり、1行目は1つの数nであり、2行目はn個の数であり、配列の内容である.参照コード:
#include 
using namespace std;

void Split(int *arr,int len)
{
	
	// 
    int *start=arr;
    int *end=arr+len-1;
    while(true)
    {
        while(start<end&&*start==0)
        start++;
        while(start<end&&*end==1)
        end--;
        if(start<end)
        {
            int t=*start;
            *start=*end;
            *end=t;
        }
        else
         break;
    }
	
	/**********   End   **********/
}