标签:
找出n个数组中相同的元素
1 int arrays_common(int arrs[][10], int cnt, int* res, int len_res ) 2 { 3 int* index_arr = (int*)calloc(cnt, sizeof(int)); //cnt是第一维 数组的编号 4 int common_cnt = 0 ; //result中数组的下标 5 int max_index ; 6 int min_val ; 7 int min_index ; 8 int index ; 9 while(1) 10 { 11 for(index = 0 ; index < cnt - 1; index ++) 12 { 13 if( arrs[index][index_arr[index]] != arrs[index + 1][index_arr[index + 1]] ) 14 { 15 break ; 16 } 17 } 18 if(index < cnt - 1) 19 { 20 min_index = 0 ; 21 min_val = arrs[0][index_arr[0]] ; 22 for(index = 1; index < cnt; index ++) 23 { 24 if(arrs[index][index_arr[index]] < min_val) 25 { 26 min_index = index ; 27 min_val = arrs[index][index_arr[index]] ; 28 } 29 } 30 index_arr[min_index] ++ ; 31 }else 32 { 33 res[common_cnt] = arrs[0][index_arr[0]] ; 34 common_cnt ++ ; 35 for(index = 0 ; index < cnt; index ++) 36 { 37 index_arr[index] ++ ; 38 } 39 } 40 for(max_index = 0, index = 1; index < cnt; index ++) 41 { 42 if(index_arr[index] > index_arr[max_index]) 43 { 44 max_index = index ; 45 } 46 } 47 if(index_arr[max_index] >= 10) 48 { 49 return common_cnt; 50 } 51 } 52 }
标签:
原文地址:http://www.cnblogs.com/qianyanglinux/p/4332176.html