PTA: 7-4 配列リスト (削除)

シーケンステーブル(削除)

トピック

ここに画像の説明を挿入します

入力サンプル

10
55 11 9 15 67 12 18 33 6 22
10 20

出力サンプル

55 9 67 33 6 22

コード

#include<iostream>
using namespace std;
void deletes(int* arr, int& sz, int left, int right)
{
    
    
    int newIdx = 0;
    for (int i = 0; i < sz; ++i)
    {
    
    
        if (arr[i] < left || arr[i] > right)
        {
    
    
            arr[newIdx] = arr[i];
            newIdx++;
        }
    }
    sz = newIdx;
}

int main()
{
    
    
    int num;
    cin >> num;
    int* seq = new int[num];
    for (int i = 0; i < num; ++i)
    {
    
    
        cin >> seq[i];
    }
    int left, right;
    cin >> left;
    cin >> right;

    deletes(seq, num, left, right);

    for (int i = 0; i < num; ++i)
    {
    
    
        cout << seq[i];
        if (i < num - 1)
            cout << " ";
    }

    delete[] seq;
    return 0;
}

① 機能deletes: 指定範囲外の配列要素を削除
arr: 整数配列へのポインタ
sz: 整数配列のサイズ、参照を渡して配列サイズを更新
left: 指定範囲の左境界
right: 右境界指定範囲の要素
を削除 ② 配列サイズを更新、指定範囲外の要素を削除
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/m0_74195626/article/details/132944439