Поменять местами элементы, расположенные над главной и побочной диагоналями с расположенными под ними - C (СИ)
Формулировка задачи:
Дана матрица А(5,5). Поменять местами элементы , расположенные над главной и побочной диагоналями с элементами , расположенными под ними (первую строку с последней , вторую с предпоследней и т.д.)
как не меняю чаще всего что то с обменом,
там где вопросы, подставить нужно(все не могу понять как ни меняю не получается)...
Решаю все рядом до около, не могу точный алгоритм составить, могу решение скинуть. Хотя я думаю кто хоть немного си знает может и так написать.
for(i=0;i<n/2;i++;) for(j=i+1;j++,j<n-1-i;)
с=A[i][j] A[i][j]=A[?][j] A[?][j]=c
Решение задачи: «Поменять местами элементы, расположенные над главной и побочной диагоналями с расположенными под ними»
textual
Листинг программы
for(i=0;i<n-1;i++) for(k=i+1;k<n;k++){ temp1=ARR[i][k]; ARR[i][k]=ARR[k][i]; ARR[k][i]=temp1;} // Смена элементов над главной диагональю с элементами под гл диагональю. for(i=0;i<n-1;i++) for(k=0;k<n-i;k++){ temp2=ARR[i][k]; ARR[i][k]=ARR[n-1-i][n-1-k]; ARR[n-1-i][n-1-k]=temp2;} // Смена элементов над побочной диагональю с эл под побоч диагональю.
Объяснение кода листинга программы
Код выполняет две операции:
- Первая операция меняет местами элементы, расположенные над главной диагональю с элементами, расположенными под главной диагональю.
Выполняется двумя вложенными циклами:
- Внешний цикл (i) идет от 0 до n-1. Он перебирает строки матрицы.
- Внутренний цикл (k) идет от i+1 до n. Он перебирает столбцы матрицы, начиная с текущей строки. Внутри циклов происходит следующее:
- Переменная temp1 инициализируется значением элемента ARR[i][k].
- Значение элемента ARR[i][k] заменяется значением элемента ARR[k][i].
- Значение элемента ARR[k][i] заменяется значением temp1.
- Вторая операция меняет местами элементы, расположенные над побочной диагональю с элементами, расположенными под побочной диагональю.
Выполняется двумя вложенными циклами:
- Внешний цикл (i) идет от 0 до n-1. Он перебирает строки матрицы.
- Внутренний цикл (k) идет от 0 до n-i-1. Он перебирает столбцы матрицы, начиная с текущей строки. Внутри циклов происходит следующее:
- Переменная temp2 инициализируется значением элемента ARR[i][k].
- Значение элемента ARR[i][k] заменяется значением элемента ARR[n-1-i][n-1-k].
- Значение элемента ARR[n-1-i][n-1-k] заменяется значением temp2.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д