Имеется вот такая прога Код | #include <stdio.h> const int M = 5;//размерность массива A const int N = 6;//размерность массива B //функиця ввода массива размерности count void InputArray( int* arr, int count ) { int i; for( i = 0; i < count; i++ ) scanf( "%d", &arr[ i ] ); } //функция печати массива размерности count void PrintArray( int* arr, int count ) { int i; for( i = 0; i < count - 1; i++ ) printf( "%d ", arr[ i ] ); if( count > 0 ) printf( "%d\n", arr[ count - 1 ] ); } //функция генерации массива пересечений массивов in1 и in2 с размерностями count1 и count2 int GenerateIntersection( int* out, int* in1, int count1, int* in2, int count2 ) { int i, j, count, temp; count = 0;//количество элементов в массиве пересечений int *shortArray, *longArray; if( count1 > count2 )//если размерность первого массива больше { //меняем размерности местами temp = count1; count1 = count2; count2 = temp; //второй массив - короче shortArray = in2; longArray = in1; } else//иначе { //первый массив короче shortArray = in1; longArray = in2; } for( i = 0; i < count1; i++ )//для каждого элемента короткого массива { j = count;//количество элементов в массиве-пересечении while( j < count2 && shortArray[ i ] != longArray[ j ] )//пока не конец длинного массива и элементы массивов не совпадают j++; if( j < count2 )//если вышли по условию совпадания элементов массивов { temp = longArray[ j ];//запоминаем равный элемент out[ count ] = temp;//записываем в исходящий массив, хранящий пересечение //меняем найденный элемент с элементом из первой(не просматриваемой) частью массива longArray[ j ] = longArray[ count ]; longArray[ count ] = temp; count++;//увеличиваем количество элементов в пересечении } } return count;//возвращаем результат(количество элементов в пересечении) } int main() { int A[ M ]; int B[ N ]; int intersection[ N < M ? N : M ];//пересечение размерности, равной минимуму M и N int count; printf( "Please enter array A with %d elements:\n", M ); InputArray( A, M );//ввод массива A printf( "Please enter array B with %d elements:\n", N ); InputArray( B, N );//ввод массива B printf( "Array A:\n" ); PrintArray( A, M );//печать A printf( "Array B:\n" ); PrintArray( B, N );//печать B count = GenerateIntersection( intersection, A, M, B, N );//ищем пересечение printf( "Intersection:\n" ); PrintArray( intersection, count );//печатаем пересечение return 0; }
|
Помогите пожалуйста доделать,как сделать так,что бы N и M не были константами ,а задаались в программе
|