Доброй ночи, помогите пожалуйста упростить\оптимизировать\изменить(в лучшую сторону) код следующей программы:
Код | #include <iostream> #include <ctime> #include <cmath> using std::cout; using std::cin; using std::endl;
int sr_geo(int **arr, int n) { int sr_geo=0; float pr=1; for(int i=0; i<n; i++) { pr*=abs(arr[i][i]); } sr_geo = (int)exp(log((float)pr)/n); return sr_geo; } int main() { srand((unsigned)time(NULL)); // Функция, которая устанавливает зерно генерации случайных чисел (аргумент - время), из <ctime>. int n,i,j; int sr; int **arr; cout<<"Vvedite razmer massiva: "; cin>>n; arr = new int*[n]; cout<<"Massiv: "<<endl; for(i=0; i<n; i++) { arr[i] = new int[n]; for(j=0; j<n; j++) { arr[i][j]=rand()%9+1; cout<<arr[i][j]<<" "; } cout<<endl; } sr = sr_geo(arr,n); // Присвоим переменой sr результат выполнения функции sr_geo() (функция поиска среднего геометрического) cout<<endl; cout<<"Sformirovannaya matrica:"<<endl; for(i=0; i<n; i++) { for(j=0; j<n; j++) { if((i+j)%2==0) { arr[i][j]= sr; } cout<<arr[i][j]<<" "; } cout<<endl; } delete arr; system("pause"); return 0; }
|
Когда показал код преподавателю, он сказал что все сделано через ж, и сказал все переделать, но я не понимаю что я не так сделал(
а само задание к этой программе звучит так:
Дано действительную квадратную матрицу порядка n. Получить новую матрицу путем замены элементов, сумма индексов которых четная на среднее геометрическое модулей элементов, находящихся на главной диагонали. |