Суть задачи в том, чтобы поменять местами указанную с клавиатуры строку со строкой с минимальным элементом в массиве.
Нужно, чтобы переменная "y" принимала значения i-го " элемента матрицы. Вроде все так сделал, но все равно не работает. Номер строки т.е "y" принимает другое значение
Вот код:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{ setlocale(LC_ALL,"Russian") ;
const int str = 3;
const int sto = 3;
int min = 0;
int matrix[str][sto];
cout << "Введите элементы матрицы: " << endl;
for (int i = 0; i < str; i++)
for (int j = 0; j < sto; j++)
cin >> matrix[i][j];
cout << " \n";
cout << "Ваша матрица: " << endl;
cout << "\n";
for (int i = 0; i < str; i++)
{
for (int j = 0; j < sto; j++)
cout << setw (4) <<matrix[i][j];
cout << endl;
}
int y;
min = matrix[0][0];
for (int i = 0; i < str; i++)
{
for (int j = 0; j < sto; j++)
{
if (matrix[i][j] < min && matrix[i][j]>=0)
min = matrix[i][j];
y=i;
y++;
}
}
cout << "Минимальное значение: "<< min;
cout << "\n";
cout << "Cтрока с минимальным значением: "<< y;
cout << "\n";
int x;
cout << endl;
cout <<"Введите строку, которую нужно поменять: \n";
cin >> x;
x--;
y--;
for (int i=0; i < str; i++)
for (int j = 0; j < sto; j++)
{
if (i == x)
{
int z = matrix[i][j];
matrix[i][j] = matrix[y][j];
matrix[y][j] = z;
}
}
cout << "\n";
cout << "Результат: \n";
cout << endl;
for (int i = 0; i < str; ++i) {
for (int j = 0; j < sto; ++j) {
cout << setw (4) << matrix[i][j];
}
cout << endl;
}
}