Код | #include <stdio.h> #include <stdlib.h> #define len1 10 // количество чисел в перпвом массиве #define len2 10 // во втором массиве #define len3 len1 + len2 // в результирующем массиве
int cmp( const void * a, const void * b ) { return *(int*)a - *(int*)b; }
void PrintArray( int* Arr, int size )//функция печати { int i; for( i=0; i<size; i++) printf("%d ",Arr[i]); printf("\n\n"); }
void main() { int m1[len1]={ 2, 3, 4, 5, 6, 7, 8, 1, 2, 4 }, m2[len2]={ 6, 7, 8, 9, 10, 11, 0, 20, 200, 3000 }, m3[len3]={0}, num, n_min, size = 0, // количество чисел в m3 i = 0, j = 0;
qsort( m1, len1, sizeof(int), cmp ); qsort( m2, len2, sizeof(int), cmp );
num = max( m1[0], m2[0] ); while ( i<len1 && j<len2 ) { n_min = min( m1[i], m2[j] ); if ( num != n_min ) { num = m3[size] = n_min; ++size; } if ( m1[i] < m2[j] ) i++; else j++; }
while( i<len1 ) m3[size++] = m1[i++]; while ( j<len2 ) m3[size++] = m2[j++];
PrintArray( m1, len1 ); PrintArray( m2, len2 ); PrintArray( m3, size ); system("pause"); }
|
|