Страница 1 из 1

задание: двухмерный масив

Добавлено: 31 май 2010, 00:04
ydantezs
Задание
Дана матриця A(N,N) цілих чисел (N-непарне). Поміняти в ній місцями головну і побічну діагоналі, якщо "центральний" елемент матриці непарний.
------------------
как проверить число на непарность? :if((((i+1)/2)&&((m+1)/2))!%2) - знаю что неправильно но никаких мыслей нету.

Код: Выделить всё

#include<stdio.h>
#include<conio.h>
#define n 3
#define m 3
void main()
{ float s[m][n]; int i,j;
  puts("massiv:");
  for(i=0;i<n;i++)
   for(j=0;j<m;j++)
    scanf("%f",&s[i][j]);
    if((((i+1)/2)&&((m+1)/2))!%2)
    s[i][j]=s[][j];
    printf("masiv:\n%f",s[i][j]);
  getch();
}
обьясните, исправте...

Re: задание: двухмерный масив

Добавлено: 31 май 2010, 05:29
Евгений М.
Дана матриця A(N,N) цілих чисел
цілих - это целых чисел? Если да то почему в вашех программе матрица чисел с плавающей запятой?
N-непарне
Т.е. четное?
как проверить число на непарность?
Вы довольно странно хотите обратится к массиву.
Для начала измените цикл ввода массива. Т.е. уберите проверку на непарность.
Создайте новый цикл, сравнивайте элемент s[j] с s[m/2][m/2].

Re: задание: двухмерный масив

Добавлено: 31 май 2010, 16:08
ydantezs
Нада проверить ценральный елемент на нечетность и потом переставить диагонали матрици наоборот, матрицы не парные типа 3х3,5х5... и тд.

Re: задание: двухмерный масив

Добавлено: 31 май 2010, 16:57
Евгений М.
Ну тогда берете остаток от деления цетрального элемента на 2. В зависимости от остатка уже будет ясно четен или нечетен.

Ну а перестановка диагоналей вообще легкая. В цикле со счетчкиком i менять элемент с i-той строкой и столбцом с i-той строкой и n-1-i столбцом.