Как поменять диагонль из сповпцем

Поменять местами в квадратной матрице главную диагональ со столбцом, содержащим минимальный элемент.
int main()
{
int n,temp;
int a [255][255];
scanf("%d", &n);
srand(time(NULL));
for (int i = 0; i<n; i++)
{
printf("\n");
for (int j = 0; j < n; j++)
{
a[i][j] = rand() % (100+1) + 1;
printf("%d ", a[i][j]);
}
}
int max = 0, jmax = 0;
printf("\n");
for (int i = 0; i<n; i++)
{
for (int j = 0; j < n; j++)
{
if (a[i][j] > max)
{
max = a[i][j];
jmax = j;
}
}
}
printf("%d", jmax+1, max,"\n");
printf("\n");
for (int i=0;i<n;i++)
{
    cout<<a[i][i]<<"  ";
}
 
system("Pause");
return 0;
}
Оригинал задания.
Кликните здесь для просмотра всего текста
Поміняти місцями в квадратній матриці головну діагональ із стовпцем, що містить мінімальний елемент.
1 ответ

#include <iostream.h>
#include <iomanip>
 
 
int main()
{
int **arr;
cout<<"input count of points:"<<endl;
int n=0;
cin>>n;
arr=new int *[n];
for (int i=0; i<n; i++) arr[i]=new int [n];
srand(time(NULL));
for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)
                arr[i][j]=rand()%10-5;
 
for (int i=0; i<n; i++){
        for (int j=0; j<n; j++)
                cout<<setw(2)<<arr[i][j]<<" ";
        cout<<endl;}
 
int k=0, min=arr[0][0];
for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)
                if (arr[i][j]<min){min=arr[i][j]; k=j;}
for (int i=0; i<n; i++){
        if (i!=k-1){  //!!!!!!!!!!!!!!!!!!!
                int temp=arr[i][k];
                arr[i][k]=arr[i][i];
                arr[i][i]=temp;
        }
}
cout<<"after modification:"<<endl;
for (int i=0; i<n; i++){
        for (int j=0; j<n; j++)
                cout<<setw(2)<<arr[i][j]<<" ";
        cout<<endl;}
 
system("pause");
for (int i=0; i<n; i++) delete[] arr[i];
delete[] arr;
        return 0;
}