Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2015, 13:14   #1
Alkmaar
Новичок
Джуниор
 
Регистрация: 13.01.2015
Сообщений: 1
По умолчанию Массивы C#

Задание: Дан массив A(N). Сформировать массив В(М), элементами которого являются большие из двух рядом стоящих в массиве А чисел. (Например, массив А состоит из элементов 1; 3; 5; -2; 0; 4; 0. Элементами массива В будут 3; 5; 4)

Какое условие нужно написать, чтобы выполнился этот пункт - "Элементами которого являются большие из двух рядом стоящих в массиве А чисел"?
Alkmaar вне форума Ответить с цитированием
Старый 13.01.2015, 14:46   #2
Bigzone
Пользователь
 
Регистрация: 14.12.2014
Сообщений: 12
По умолчанию

Код:
if (a[n] > a[n+1])
{
b[m] = a[n];
}
и учесть чтобы n+1 не превысило предел.
Bigzone вне форума Ответить с цитированием
Старый 13.01.2015, 20:38   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Bigzone, по вашему алгоритму 3-ка не попадает в массив B

впрочем, в примере не понятно, почему ноль не попал в массив B, ведь 0 больше, чем -2...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.01.2015, 00:12   #4
Aleksander550
Форумчанин
 
Регистрация: 07.01.2014
Сообщений: 124
По умолчанию

Цитата:
Например, массив А состоит из элементов 1; 3; 5; -2; 0; 4; 0. Элементами массива В будут 3; 5; 4
то вот на С++(не знаю как будет работать на шарпе)
Код:
int const n = 8;
int const m = 4;
int arrayA[n] = {1, 3, 5, -2, 0, 4, 0, -3};
int arrayB[m];
for (int i = 0; i < m; i++) {
	arrayB[i] = (arrayA[i*2] > arrayA[i*2+1] ? arrayA[i*2] : arrayA[i*2+1]);
}
Но мне кажется смысл вашей задачи в arrayB[i] = max(arrayA[i-1],arrayA[i+1]). arrayB = 3 5 3 5 4 0 4
Код:
int const n = 8;
int const m = 8;

int max(int a, int b);

void main(){
int arrayA[n] = {1, 3, 5, -2, 0, 4, 0};
int arrayB[m];

for (int i = 0; i < m; i++) {
	arrayB[i] = max((i != 0 ? arrayA[i-1] : arrayA[i+1]),
					(i != (m - 1) ? arrayA[i+1] : arrayA[i-1]));
	}
...
}

int max(int a, int b){
int value = a;
if (b > value)
	value = b;
return value;
}
#define TRUE FALSE //счастливой отладки

Последний раз редактировалось Aleksander550; 14.01.2015 в 00:14.
Aleksander550 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12