Странный код
int vvod_hand(int strok, int stolb,int massiv[50][50])
массив передается указателем(адресом на массив) .... соответственно не нужно городить а писать как ЕСТЬ
int vvod_hand(int strok, int stolb,int *massiv)
поймите прямую связь между указателем и массивом
внутри функции где я имею право использовать
massiv[i][j] дав входные параметры как указал выше .. обычно тут люди испытывают страх!!!
все это относится ко всем функциям!!!
далее везде не берется во внимание что
ИНДЕКС МАССИВА НАЧИНАЕТСЯ С 0(НУЛЯ)!!!
пример
int A[5]
возможные обращения
A[0] A[1] A[2] A[3] A[4]
обмена как такого НЕТ ВООБЩЕ !!! обмен значениями
2-х переменных осуществляются через 3-ю, исключением являеются целые числа!
вообще дагонали главная & побочная существуют только у квадратных матриц!
... поэтому пусть размер равен n , тогда перестановка...
Код:
void invert(int *massiv,int n)
{
int z;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(i+j<n-2)
{
z=massiv[i][j];
massiv[i][j]=massiv[n-j-1][n-i-1];
massiv[n-j-1][n-i-1]=z;
}
}