簡體   English   中英

使用函數從c ++中的數組中刪除2個或更多元素的序列?

[英]Deleting sequence of 2 or more elements from an array in c++ using a function?

我是C ++編程的新手,編寫此函數時遇到問題。 我已經寫了一些代碼(見下文),但我不知道出了什么問題。 請幫我。 謝謝。

這是數組:char marbles [10] = {'B','G','R','P','B','G','R','P','B','G “};

(a)此函數接收一個字符數組及其大小,並刪除偏移量為pos的元素。 偏移量大於pos的元素將全部移至空白處。 這是我的代碼,但不確定是否正確。

void deletePosition(char arr[], int size, int pos) 
{ 
    for (int i = pos; i < size - 1; i = i + 1) 
        { 
           arr[i] = arr[i + 1]; 
        } 
        size = size - 1; 
}

(b)此函數接收一個字符數組,該字符數組表示一系列彩色大理石,並帶有數組的大小。 它刪除所有具有相同顏色的2個或更多大理石的所有序列,並根據刪除結果返回數組的新大小。 應使用“ deletePosition”功能(以上-(a)部分)執行單個刪除。

這是我的代碼,但我不知道怎么了

int deleteMarbles(char marbles[], int size) 
{ 
     int i, j; 
     for (i = 1; i < size; i=i+1) 
     { 
        for (j=0; j<i; j=j+1) 
        { 
            if (marbles[i] == marbles[j]) 
            { 
                 deletePosition(marbles, size, i); 
                 deletePosition(marbles, size, j); 
            } 
        } 
      } 
return size; 
}

您的deletePostion()需要通過引用來調整size

void deletePosition(char arr[], int& size, int pos) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM