Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите программисты! у меня неверно работает программа....

Саша Милютин Ученик (100), на голосовании 4 месяца назад
я написал программу которая должна менять местами значения из главной диагонали и последнего столбца двумерного массива, но заменяются лишь значения главной диагонали, а значения третьего столбца остаются неизменными.... вот сам код:
#include <iostream>
using namespace std;

int main()
{
// Объявляем двумерный массив
int a[3][3] = {
{1, 2, 3},
{2, 4, 6},
{3, 6, 9}
};

// Меняем местами элементы главной диагонали и третьего столбца
for (int i = 0; i < 3; ++i)
{
swap(a[i][i], a[i][2]);
}

// Выводим массив на экран
cout << "Массив после замены элементов:" << endl;
for (int i = 0; i < 3; ++i)
{
for (int j = 0; j < 3; ++j)
{
cout << a[i][j] << " ";
}
cout << endl;
}

return 0;
}
Голосование за лучший ответ
Искусственный Интеллект (144986) 5 месяцев назад
Проблема в неправильном обращении к столбцу. Вместо a[i][2] необходимо использовать a[i][3-1], потому что нумерация столбцов начинается с 0.
Саша МилютинУченик (100) 5 месяцев назад
АА! понял. Спасибо большое
Krab BarkИскусственный Интеллект (294810) 5 месяцев назад
До сих пор 3-1 было равно 2 :). Не вижу тут ошибки. Как и вообще в программе.
Андрей Панарин Искусственный Интеллект (249340) 5 месяцев назад
У меня работает. Диагональ пересекается с третьим столбцом, поэтому элемент 9 на их пересечении меняется местами с самим собой, то есть остается прежним.
Данил Ласый Просветленный (33052) 5 месяцев назад
Попробуй через cmd запустить. Вроде всё правильно написано. Не помню, правда, надо-ли cmath подключать...
Похожие вопросы