我有一個包含5個元素(1024,1025,1026,1027,1028)的數組。我如何檢查這些元素是否連續或不連續。我可以做同樣的事情如果數組有偶數個元素。在數組中查找數字是否按順序排列
2
A
回答
2
0
只需通過數組迭代:
bool is_sequence(int *arr, int size)
{
int i;
for(i = 0; i < (size - 1); i++)
{
if((arr[i] + 1) != arr[i])
/* array is not sequential */
return false;
}
/* array is sequential */
return true;
}
<...>
if(is_sequence(my_array, 5))
printf("sequential!"
else
printf("not sequential");
0
你應該比較兩個相鄰數字,你必須做同樣的事情多次。所以,一個循環是必要的。一個簡單的程序如下。
#include<stdio.h>
int main()
{
int a[5]={1024,1025,1026,1027,1028};
int i,s;
for(i=0;i<4;i=i+1)
{
if(a[i]+1 != a[i+1])
{ s=-1; break; }
else
{ s=0; }
}
if(s=0)
{ printf("sequential."); }
else
{ printf("not sequential."); }
}
我希望我的回答能幫助你。謝謝。
+0
非常感謝英利燕。這是我正在尋找的答案 – Avinash
+0
這是我的榮幸。 –
0
我建議這個解決方案(如果說sequential
你的意思只是ordered
):
#include <stdio.h>
int isArraySequential(int * array, int size) {
int isAscendingFirst;
int isAscendingCurrent;
int isChangeFound = 0;
int i;
// arrays of length 0/1/2 are assumed to be sequential
if (size < 3)
return 1;
for (i=1; i < size; i++) {
// in case there is a change
if (array[i] != array[i-1]) {
isAscendingCurrent = (array[i] > array[i-1]);
// on first change
if (!isChangeFound) {
isChangeFound = 1;
isAscendingFirst = isAscendingCurrent;
}
// on subsequent changes
else {
if (isAscendingFirst != isAscendingCurrent)
return 0;
}
}
}
return 1;
}
int main(){
int array1[4] = {1, 1, 0, -1};
int array2[4] = {2, 2, 2, 2};
int array3[4] = {1, 2, 4, 3};
printf("Is array1 sequential ? %d\n", isArraySequential(array1, 4));
printf("Is array2 sequential ? %d\n", isArraySequential(array2, 4));
printf("Is array3 sequential ? %d\n", isArraySequential(array3, 4));
return 0;
}
因爲一般的順序排列可以在ascending
OR descending
秩序,這一點必須考慮在內。還有一些角落案例 - 長度爲0/1/2的數組總是順序的(我不確定長度爲0)。
編輯:我修復了第一個數組元素具有相同值的情況下的代碼。現在它應該可以正常工作。
相關問題
- 1. 檢查數組是否按時間順序排列
- 2. 按字母順序排列數組
- 3. 按字母順序排列數組?
- 4. 按字母順序排列數組
- 5. 按字母順序排列數組php
- 6. 按字母順序排列數組
- 7. 按字母順序排列數組javascript
- 8. 按字母順序排列數組
- 9. 按數字順序排列數組列表然後按字母排序
- 10. 按字母順序排列JSON數組中的JSONObjects數組
- 11. Java - 按字母順序和數字順序排列數組列表
- 12. 數組排序按字母順序
- 13. 在JqGrid中是否可以按字母順序排序組?
- 14. perl - 按數字順序降序排列,然後按字母順序排列
- 15. 排序按字母順序排列和顯示數組值
- 16. 如何確定列中的數據是否按順序排列?
- 17. 在C中按字母順序排列數組#
- 18. C:按字母順序排列字符數組陣列
- 19. 按順序排列並按組排序
- 20. 檢查Postgres數組是否按順序包含子數組
- 21. 在Java中對字符串數組按字母順序排序
- 22. 在scala中按字母順序排序字符串數組
- 23. 按字母順序排列數組,並按首字母進行排序
- 24. 按字段順序排列+按字母順序排列
- 25. 按字母順序排列JSON數據
- 26. javascript - 按數字順序排列表格
- 27. 按字母順序排列數據
- 28. 按所需順序排列數字
- 29. 按位操作查找數組中是否存在數字
- 30. 在java中按字典順序排列(按字母順序)
遍歷數組? –
每次增加數組指針1並檢查其結果... – akp
您應該定義_'sequential'_,因爲......,8,4,2,1'序列也是連續的...或者通過說'順序'你的意思只是'有序'?在那種情況下,我發佈了一個aswer,如果你想找到列表是按照升序/降序排列的。 –