Вопрос Ребята помогите растолковать задачу. Не могу понять что от меня хотят (

Регистрация
2 Июн 2013
Сообщения
71
Репутация
0
Спасибо
0
Монет
0
формировать новый массив В из одномерного числового массива А, в котором элементы те же, что и в А, но в массиве В, элемент с номером i был бы равен номеру минимального элемента седи первых i элементов А.
 
А = [ 100, 500, 5, 6, 4, 0, 50 ] B = [ min(100), min(100, 500), min(100, 500, 5), min (100, 500, 5, 6), min(100, 500, 5, 6, 4), min(100, 500, 5, 6, 4, 0), min(100, 500, 5, 6, 4, 0, 50) ] Это для понимания что просят сделать Реализация может быть намного проще
 
Это задание нельзя понять, потому что оно противоречиво. Сначала написано, что B содержит элементы из A, и можно понять так, что все элементы A содержатся в B, и никаких других элементов там нет ("элементы те же, что и в А"). Далее сказано, что В содержит номер элемента (а не сам элемент). Может быть, эта задача имеет смысл, если массив A не произвольный, а специально придуманный. Но скорее всего, тут ошибка в описании.
 
#include < iostream > #include < algorithm > #include < cstdlib > #include < ctime > using namespace std; void main() { setlocale(LC_ALL, "rus"); srand(time(NULL)); cout << "Введите количество элементов в массиве "; unsigned n; cin >> n; auto a = new int[n]; auto b = new int[n]; generate(a, a + n, []() {return rand() % 51; }); for (unsigned i = 0; i < n; ++i) { int min = a[0]; for (unsigned u = 0; u <= i; ++u) { if (a < min) min = a; } b = min; } auto Print = [](int t) {cout << t << " "; }; cout << "Массив A" << endl; for_each(a, a + n, Print); cout << "
Массив B" << endl; for_each(b, b + n, Print); cout << endl; cin.get(); cin.get(); }
 
Назад
Сверху