我正在處理此迴文函數,並試圖對其進行修改,以便我可以發送數組中的特定位置作爲起點。 下面是代碼:將特定數組元素的地址傳遞給函數
#include<iostream>
using namespace std;
bool pali(int [],int size);
int main()
{
int n[] = {3, 5, 9, 4, 8, 2, 8, 4, 7, 10}; //just a sample array for testing
int length = 10;
pali(n,length);
}
bool pali(int a[],int size)
{
int flag=0;
int i=0;
while(flag==0 && i<size){
if(a[i]==a[size-i-1]){
flag=0;
i++;
}
else{
flag=1;
}
}
if(flag==0)
return true;
else
return false;
}
如何這段代碼進行修改,以採取特定元素的地址。因此,如果我發送的數組地址的位置在3
處大小爲5,它將返回true(如在4,8,2,8,4中)。但是,如果它發送了另一個不是迴文的地址和大小,它將返回false。
你已經有2個參數在你的函數中,只需使用相同的方法添加2個以上? –
如果您使用C++,請嘗試使用'std :: vector'而不是C風格的數組加上'size'對。還避免使用名稱空間標準。它旨在保持獨立,以避免與您自己的代碼發生衝突。如果你想返回一個布爾值,你甚至可以'返回標誌== 0'或者'return!flag',或者甚至更好的方法是使'bool flag = true',顛倒含義並且避免強制轉換。 – tadman
@the_martian只要寫pali(n + 3,5); –