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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2012, 18:10   #1
An90
Пользователь
 
Регистрация: 29.09.2012
Сообщений: 10
По умолчанию Массив

Дан массив А размера N. Сформировать новый массив В того же размера, элементы которого определяются следующим образом: Вк=2*Ак, если Ак<5, Ак/2 в противном случае.
Язык программирования-СИ.
Текст программы:
#ifdef USE_ARRAY
# include <stdlib.h>

int main() {
unsigned i, n;
int* a;
int* b;
scanf("%u", &n);
a = (int*)malloc(n * sizeof(int));
b = (int*)malloc(n * sizeof(int));
for (i = 0; i < n; i++) {
scanf("%d", a + i);
printf("%d", b[i] = a[i] < 5? a[i] + a[i]: a[i] >> 1);
}
free(a);
free(b);
}

#else

int main() {
unsigned n;
int temp;
scanf("%u", &n);
while (n--) {
scanf("%d", &temp);
printf("%d", temp < 5? temp + temp: temp >> 1);
}
}

#endif
Нельзя ли написать как-нибудь по-проще?
An90 вне форума Ответить с цитированием
Старый 29.09.2012, 21:38   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Можно )
Код:
#include <algorithm>
#include <iterator>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
	cout << "Enter array size: ";
	vector<int> a(*istream_iterator<size_t>(cin)), b;
	cout << "And elements: ";
	generate(a.begin(), a.end(), []() { return *istream_iterator<int>(cin); } );
	transform(a.begin(), a.end(), back_inserter(b), [](int val) { return (val < 5 ? val * 2 : val / 2); } );
	copy(b.begin(), b.end(), ostream_iterator<int>(cout, " "));
}
Son Of Pain вне форума Ответить с цитированием
Старый 30.09.2012, 09:00   #3
An90
Пользователь
 
Регистрация: 29.09.2012
Сообщений: 10
По умолчанию

Спасибо!!! А можно на Си написать и с использованием массива?)
An90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 11:26
Запись координат в массив в реал тайм, Как записать координаты в массив Dark19 Visual C++ 2 21.06.2011 18:45
Из массив А получить массив В, удвоив все нечётные элементы удвоены ( на Pascal) KARTER Помощь студентам 1 18.06.2011 19:58
Массив - Нужно написать массив и распечатать на экран с конца в начало(язык С++) econ Помощь студентам 1 29.05.2011 22:02