2015-03-25 76 views
0

我有一個布爾函數來計算一個1d字符數組。它有兩個參數:一個1d字符數組和一個char c。如果給定的char c在給定數組中至少連續出現四次,我希望函數返回true,否則返回false。查找數組中的連續字符

我不知道如何啓動或完成此功能。請幫忙!謝謝。

+0

請注意,這與在長字符串內搜索「cccc」相同。 – 2015-03-31 02:51:04

回答

1

我希望我不會爲你做功課;)。因此,這裏的須藤代碼對於這個問題,以幫助您開始

你想的第一件事是方法頭,返回一個布爾值,並且有一個參數爲字符數組和字符

的接下來的步驟是創建一個計數器並運行一個循環來篩選數組中的每個字符。每次遇到數組中的特定字符時,如果下一個字符不是您想要的那個字符,那麼您會將計數器重置爲0.然後在循環中添加一個條件以檢查計數器達到4,如果是的話,你會返回true。如果它從未達到4,那麼你會想返回false。繼續嘗試編碼,看看你是否得到它。

+0

實際的僞代碼會很酷。 :) – 2015-03-25 01:36:43

0

簡單的問題。如果這是你的家庭作業,那麼你不應該這樣做。你的問題需要改變。首先在詢問之前先試一試,然後一旦完成嘗試,您可以發佈您不確定的錯誤或代碼片段,然後尋求幫助。否則你不會學到任何東西。找到了解決問題的簡單方法。我不會給你完整的解決方案,而是一個指導,幫助你解決你的問題。

在我看來,字符串總是一個更好的選擇,而不是字符,因爲該函數包附帶的函數。除非你的問題或者你正在做的這個程序需要你使用char,否則char只是普通的老煩人(再次在我看來)。

首先, 創建您的主程序 - >創建您的數組並初始化它,或者您可以提示用戶輸入它們。無論哪個工作。 使用「bool」數據類型來創建布爾變量。 提示用戶輸入char值進行檢查。

現在調用該函數並提供參數。我猜這個函數就是你被困住的地方,所以我要給你提供我爲這個問題編寫的代碼片段。

bool check(char* <array_name>, char* <array_name>) //for the array list and the 
                //value to check for 

{ 
    int size; 
    size = strlen(<array_name>); //to get the size of the array (array list) 

    int counter=0; //to keep count of the occurrence of the char to check 

    for(int x=0; x<size; x++) //ar = array list and token = char to check 
    { 
     if(ar[x]==token[0]) //check for each iteration if token is in ar[x] 
      counter++;  //if it is then counter increases by 1 
     else 
      counter = 0; //To reset the value to 0 if its not consecutive. 

     if(counter == 4) //to stop the loop when 4 consecutive values has been found. 
      break; 
    } 

    if(counter >= 4) //as per your requirement 4 or above 
       return true; 
    else 
       return false; 
} 

編輯:這是檢查值,直到找到您正在搜索的4個連續值並結束循環。如果你想以不同的方式,那麼請隨時評論這個答案。您可以隨時添加其他計數器或任何其他數據,以檢查該值的連續出現次數。例如1,1,1,1,2,3,4,1,1,1,1,2,3,4,1,1,1,1,2,3,4。

該計數器爲3,因爲它發生3次,每次連續重複相同的值4次。

如果這是您的家庭作業,那麼您最好進行正確的學習,因爲這是一個非常簡單的問題,您不應該尋求解決方案,而是首先尋求指導並嘗試。

祝你好運!如果您需要進一步澄清或幫助對此進行評論。

+0

這個計數所有的事件,無論是否連續。 – 2015-03-31 02:50:10