[英]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.