Показать сообщение отдельно

  #2131  
Старый 29.12.2009, 22:54
Retimiled
Banned
Регистрация: 24.12.2009
Сообщений: 141
С нами: 8622379

Репутация: 45
По умолчанию

Странный код
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;
    }
}

Последний раз редактировалось Retimiled; 30.12.2009 в 04:37..
 
Ответить с цитированием