| Код | #include<iostream> #include<conio.h> using namespace std; const int N=3;//количество строк матрицы const int K=4;//длина строки матрицы массива void InputArray(int* Arr) //ввод массива Arr { for(int i=0;i<K;i++) cin>>Arr[i];//ввод очередного элемента массива } void PrintArray(int* Arr) //печать массива Arr { for(int i=0;i<K-1;i++)//для всех элементов, кроме последнего cout<<Arr[i]<<" ";//печать элемента и отступ cout<<Arr[K-1]<<endl;//печать последнего элемента с переходом на новую строку } void InputMatrix(int** Matrix) //ввод матрицы Matrix { for(int i=0;i<N;i++)//для каждой строки матрицы for(int j=0;j<K;j++)//для каждого элемента строки матрицы cin>>Matrix[i][j];//ввод очередного элемента строки матрицы } void PrintMatrix(int** Matrix) //печать матрицы Matrix { for(int i=0;i<N;i++)//для каждой строки матрицы { for(int j=0;j<K-1;j++)//для каждого элемента строки матрицы cout<<Matrix[i][j]<<" ";//печать очередного элемента строки матрицы cout<<Matrix[i][K-1]<<endl;//печать последнего элемента строки матрицы с переходом на следующую строку } }
bool IsArrayEqualMatrixString(int** Matrix, int* Arr,int iStringNumber) //функция возвращает совпадает ли iStringNumber строка матрицы Matrix с массивом Arr { int i=0;//счетчик - в начало массива while((i<K)&&(Matrix[iStringNumber][i]==Arr[i])) //пока не перешли последний элемен строки и очередной элемент строки матриы совпадает с очередным элементом массива i++;//увеличение счетчика - переход к следующему элементу return (i==K);//если перешли за конец строки(массива) то совпадение }
int main() { int* Arr;//указатель на массив int** Matrix;//указатель на матрицу
Matrix=new int*[N];//выделение памяти под N указателей на указатель на массив for(int i=0;i<N;i++) Matrix[i]=new int[K];//выделение памяти под K указателей на массив cout<<"Please enter a matrix["<<N<<"x"<<K<<"]:"<<endl; InputMatrix(Matrix);//ввод матрицы
Arr=new int[K];//выделение памяти под массив cout<<"Please enter an array with "<<K<<" elements:"<<endl; InputArray(Arr);//ввод массива
cout<<"Source matrix:"<<endl; PrintMatrix(Matrix);//печкть исходной матрицы cout<<"Source array:"<<endl; PrintArray(Arr);//печать исходного массива cout<<"Result:"<<endl; for(int i=0;i<N;i++) if(IsArrayEqualMatrixString(Matrix,Arr,i))//если i-ая строка матрицы равна массиву cout<<i+1<<endl;//выводим номер строки, считая что 0 строка первая
delete[] Arr;//освобождение памяти
for(int i=0;i<N;i++) delete[] Matrix[i];//освобождение памяти
delete[] Matrix;//освобождение памяти
getch();//ожидание ввода return 0; }
|
|