Задача: В массиве С(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;
}
Потому что элементы меняются местами дважды, и, таким образом, массив восстанавливает свое состояние
Чтобы избежать этого, нужно цикл обмена выполнять только для половины ячеек (и диагональ саму можно исключить)
for (int j = i + 1; j < n; j++){
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение
В директории имеется два одинаковых текстовых файла: SomeTxtFile1 и SomeTxtFile2 - оба весом в 1 кб (отображается в проводнике)
Спустя неоднократные попытки анимировать круг со свойством stroke-dasharray, придумал вариант вложенности circle в circle: