Поменять Местами Соответствующие Элементы Первой Строки И Главной Диаг

Liori

New Member
30.11.2014
3
0
#1
Помогите, что у меня не так в коде? Выводит совсем не то, что сказано в условии

C++:
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;

int main(int argc, char* argv[])
{
int N;
cout << "Vvedite razmernost massiva: "; // т.к. вводится квадратная матрица, число вводится одно
cin >> N;
vector < vector<int> > mass(N, vector<int> (N));
vector < vector<int> > mass2(N, vector<int> (N));

for (int i = 0; i < N; i++) 
for (int j = 0; j < N; j++)
{
cin >> mass[i][j];
}

for (int i = 0; i < N; i++) 
{
for (int j = 0; j < N; j++)
{
if (i == j)
{
mass2[i][j] = mass[i][j];
mass[i][j] = mass[1][j];
mass[1][j] = mass2[i][j];

}
}
cout << "\n";
}

for (int i = 0; i < N; i++) 
{
for (int j = 0; j < N; j++)
{
cout << mass[i][j] << " ";
}
cout << "\n";
}

system("pause");
return 0;
}
 

Whatka

Well-Known Member
09.10.2011
428
4
#2
а зачем использовать векторы?чем обычные массивы не понравились?
вы понимаете что у вас 2 матрицы создаётся?



а так замените
C++:
		 mass2[i][j] = mass[i][j];
mass[i][j] = mass[1][j];
mass[1][j] = mass2[i][j];
на
C++:
swap(mass[i][i], mass[1][i]);
 

Liori

New Member
30.11.2014
3
0
#3
Заменила те строчки на
C++:
swap(mass[i][i], mass[1][i]);
Но, увы, всё равно не меняет элементы главной диагонали и первой строки
 

Whatka

Well-Known Member
09.10.2011
428
4
#4
всё работает верно,но я вас не совсем правильно понял,вот так надо

C++:
swap(mass[i][i], mass[0][i]);