| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++]Одномерный массив |
| Автор: bobik02 26.11.2007, 17:01 |
| вот задали такую задачку: Сгенерировать и вывести на экран одномерный массив: X{Xi} (i = 1,n где n =10 ) у диапазоне целых чисел [20;90] . Сформировать массив Z, который складывается с єлементов массива X , которые устравивают условию Xi > 40 . Упорядочить єлементы массива Z по возрастанию . так вот что не ясно: 1.) как с помощью генератора случайных чисел сгенерить i = 1, n где n 10 в диапазоне чисел [20; 90] (если не затруднит можно код, а то я не пойму что то ) 2.) И каким образом можно упорядочить єлементы по возростнаию ? (тут код не надо просто объсните на примере как построить алгоритм) (только помгите разобратся , но не делайте за меня задачу, буду очень признателен за помощь |
| Автор: Puoar 26.11.2007, 17:44 |
| По возрастанию значит первым будет стоять наименьший по значению элемент Достигает ся это так: Цикл 1 (от начала до конца массива) |--Цикл 2 (от начала до конца массива) |--(если элемент меьше предыдушего меняем их местами) |
| Автор: bobik02 26.11.2007, 19:18 | ||||
| я полагаю что алгоритм должен работать так: 1.) Генерим массив X (в диапазоне от 20 до 90...) 2.) Записываем только те элементы с массива X в массив Z если выполняется условие ( X > 40 ) 3.) Сортируем элемнты массива Z по возрастанию . пункт 1-й есть, со 2-м проблема, с 3-м пока что не могу понять как отсортировать ну вот начал делать:
столкнулся с такой проблемой: в задаче сказано что второй массив (Z): складывается с элементов массива X , которые устравивают условию Xi > 40 например сгенерило такой первый(X) массив: {59, 54, 76 , 54, 72, 53, 46, 34 , 56, 71} соовтествено с 10 элементов (n), если брать єтот пример то по условию второй массив (Z) будет с 9-ти єлементов так как: мы выяснили что Xi > 40 , то берем все элементы, кроме 34. значит и второй массив должен содержать 9ть элементов... (соответсвенно n-1 в данном случаи) я думал решить это так:
но компилятор не хочет меня слушатся и говорит такую ошибку: E2313 Constant expression required in function main(int,char * *) в подскажите как побороть ? |
| Автор: bobik02 26.11.2007, 21:15 | ||
c сортировкой разобрался
теперь осталось, только: Сформировать массив Z, который складывается с єлементов массива X , которые устравивают условию Xi > 40 помогите ? |
| Автор: bobik02 26.11.2007, 21:38 |
| ... |
| Автор: orthrus 27.11.2007, 07:10 | ||
вот так надо сделать:
т.е. массив надо создавать динамически, т.к. на этапе компиляции count вычислить невозможно следовательно и создать массив статически с кол-вом элементов = count тоже невозможно. |