Почему элементы массива не меняются?

107
01 октября 2021, 13:20

Задача: В массиве С(6,6) поменять местами элементы симметрично относительно главной диагонали. Почему у меня ничего не меняется местами?

#include <iostream>
int main()
{
    using namespace std;
    setlocale(0, "");
    int const n = 6;
    int i, k;
    int C[n][n]; 
    for (int i = 0; i < n; i++){
        for (int j = 0; j < n; j++)
        {
             C[i][j] = { rand() % 10 };
        }
    }
    cout << " Массив до изменений" << endl;
    for (int i = 0; i < n; i++){
        for (int j = 0; j < n; j++){
            cout << C[i][j];
        }
        cout << endl;
    }
    for (int i = 0; i <n; i++){
        for (int j = 0; j <n; j++){
            int temp = C[i][j];
            C[i][j] = C[j][i];
            C[j][i] = temp;
        }
    }
    cout << " Массив после изменений" << endl;
    for (int i = 0; i < n; i++){
        for (int j = 0; j < n; j++){
            cout << C[i][j];
        }
        cout << endl;
    }
        system ("pause");
        return 0;
}
Answer 1

Потому что элементы меняются местами дважды, и, таким образом, массив восстанавливает свое состояние

Чтобы избежать этого, нужно цикл обмена выполнять только для половины ячеек (и диагональ саму можно исключить)

  for (int j = i + 1; j < n; j++){
READ ALSO
Как лучше преобразовать тип string в тип int? (C++ 17) [закрыт]

Как лучше преобразовать тип string в тип int? (C++ 17) [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

123
Два одинаковых файла имеют разный размер в байтах?

Два одинаковых файла имеют разный размер в байтах?

В директории имеется два одинаковых текстовых файла: SomeTxtFile1 и SomeTxtFile2 - оба весом в 1 кб (отображается в проводнике)

174
SVG Анимация постепенного появления stroke-dasharray

SVG Анимация постепенного появления stroke-dasharray

Спустя неоднократные попытки анимировать круг со свойством stroke-dasharray, придумал вариант вложенности circle в circle:

110