C語言找出一個數組中重複的元素
阿新 • • 發佈:2018-12-22
在一個數組中的數字是連續的,但是這個陣列中有一個數重複出現了一次,找出這個數。
#include <stdio.h> int main() { int i; int tmp=10; int swap=0; int a[10]={1,3,5,7,8,6,9,2,3,4}; for(i=0;i<10;i++) { if(a[tmp-1]!=tmp) { swap=a[tmp-1]; a[tmp-1]=tmp; tmp=swap; } else { printf("重複的數為:%d\n",tmp); break; } } return 0; }
方法二:
利用額外的一個數組b 來存原陣列中出現的數字的次數
當這個數第二次出現時,陣列b內對應位置會多+1。
#include <stdio.h> int main() { int i; int tmp=0; int a[5]={2,4,1,3,2}; int count[5]={0}; for(i=0;i<5;i++) { tmp=a[i]; if(count[tmp-1]==1) { printf("重複的數為:%d\n",tmp); } else { count[tmp-1]++; } } return 0; }