[H-L-L.ru] |
Форма входа |
Меню сайта |
Главная » Статьи » Решение задач на C++ к лекциям » Функции |
Даны две квадратные матрицы nxn. Напечатать ту из них, которая имеет минимальный "след” (т.е. сумму элементов главной диагонали). При решении создать функцию для нахождения следа матрицы и функцию печати матрицы. float Sled(int **massiv1, int number1, int **massiv2, int number2) { float s1=0,s2=0; int i,j; for(i=0;i<number1;i++) for(j=0;i<number1;i++) { s1=s1+(*massiv1)[i*number1+j];break; } for(i=0;i<number2;i++) for(j=0;i<number2;i++) { s2=s2+(*massiv2)[i*number2+j];break; } return (s1>s2)?2:1; } void Pech(int **a, int nstr) { int i, j; for(i=0;i<nstr;i++) for(j=0;j<nstr;j++) cout<<'\n'<<a[i][j]<<'\n'; } #pragma argsused int main(int argc, char* argv[]) { int nstr,nstb; cout<<" Количество строк = ";cin>>nstr; //ввод кол. строк cout <<" Количество столбцов = ";cin>>nstb; //ввод кол. столбцов //динамическое выделение памяти int **a=new int *[nstr];//оператор 1 for(int i=0;i<nstr;i++) //оператор 2 a[i]=new int[nstb]; //оператор 3 if(!a) //проверка факта выделения памяти {cout<<"\nНедостаточно памяти"; cout<<"\nНажмите любую клавишу для завершения программы ...\n"; getch(); return 0;} //ввод массива cout<<"\nВведите массив["<<nstr<<"]["<<nstb<<"]\n"; for(int i=0;i<nstr;i++) for(int j=0;j<nstb;j++) cin>>a[i][j]; //оператор 3 int nstr2,nstb2; cout<<" Количество строк = ";cin>>nstr2; //ввод кол. строк cout <<" Количество столбцов = ";cin>>nstb2; //ввод кол. столбцов //динамическое выделение памяти int **b=new int *[nstr2];//оператор 1 for(int i=0;i<nstr2;i++) //оператор 2 b[i]=new int[nstb2]; //оператор 3 if(!b) //проверка факта выделения памяти {cout<<"\nНедостаточно памяти"; cout<<"\nНажмите любую клавишу для завершения программы ...\n"; getch(); return 0;} //ввод массива cout<<"\nВведите массив["<<nstr2<<"]["<<nstb2<<"]\n"; for(int i=0;i<nstr2;i++) for(int j=0;j<nstb2;j++) cin>>b[i][j]; //оператор 3 cout<<"\nMinimalnyi sled u matrici №"<<Sled(a, nstr, b, nstb); Pech(a, nstr); Pech(b, nstr); delete [] a; //освобождение памяти delete [] b; //освобождение памяти getch(); return 0; } Источник: след матрицы | |
Всего комментариев: 0 | |