Другие языки программирования и технологии
Странная задачка по программированию
Задание такое. Удалить в заданном массиве действительных чисел «лишние» (кроме первого) элементы так, чтобы оставшиеся образовывали возрастающую последовательность. Преобразование осуществить за один просмотр массива. Нужно записать это на алгоритмическом языке. Непонятно, как это выполнить в один проход цикла. Насколько я знаю, просто удалять элементы массива нельзя, можно только сдвигать. Но для этого нужен еще один цикл?
Задание ж требует один ПРОХОД про один ЦИКЛ ни слова :)
странное дело.. .
в начале вопроса вы говорите "удалить", а позднее пишете "удалять.. . нельзя"...
как понять? что конкретно подаётся в эту программу и что ожидается получить? пример ввода и вывода привести можете?
в начале вопроса вы говорите "удалить", а позднее пишете "удалять.. . нельзя"...
как понять? что конкретно подаётся в эту программу и что ожидается получить? пример ввода и вывода привести можете?
преподаватели любят составлять задания, которые только ини и понимают....
Да не нужен здесь второй массив, и не нужен для сдвига второй цикл.
int array[] = {1, 3, 2, 4, 4, 5};
const int count = sizeof(array) / sizeof(array[0]);
int last_item = array[0];
int new_count = 1;
for (int i = 1; i < count; i++)
{
int item = array[ i ];
if (item > last_item)
{
if (new_count != i)
array[new_count] = item;
last_item = item;
new_count++;
}
}
new_count - новое количество элементов в массиве array[]
int array[] = {1, 3, 2, 4, 4, 5};
const int count = sizeof(array) / sizeof(array[0]);
int last_item = array[0];
int new_count = 1;
for (int i = 1; i < count; i++)
{
int item = array[ i ];
if (item > last_item)
{
if (new_count != i)
array[new_count] = item;
last_item = item;
new_count++;
}
}
new_count - новое количество элементов в массиве array[]
пффф.. . задание детское, что тут может быть непонятного? стучи в агент
Можно и за один. Если б не было так поздно, написала б, но спать хочется.
Нужно просто сохранять длину возрастающей последовательности и дописывать следующий элемент на эту позицию. А вот если вам нужно наидлиннейшую подпоследовательность, то тут да -- одним циклом не обойдешься.
Нужно просто сохранять длину возрастающей последовательности и дописывать следующий элемент на эту позицию. А вот если вам нужно наидлиннейшую подпоследовательность, то тут да -- одним циклом не обойдешься.
Можно использовать второй массив для результата, хотя, конечно, вариант Андрея Рыкова лучше, да и реализуется не сложнее.
так сказано удалить!
смотришь первое число
вводишь переменуую, пусть%, равную первому числу
смотришь второе
если второе больше %, то заносишь его значание в % и переходишь к третьему, иначе удаляешь его
мотришь третье
к конце ОДНОГО прохода будет возрастать весь массив
смотришь первое число
вводишь переменуую, пусть%, равную первому числу
смотришь второе
если второе больше %, то заносишь его значание в % и переходишь к третьему, иначе удаляешь его
мотришь третье
к конце ОДНОГО прохода будет возрастать весь массив
маловато вопросиков у вас - одын=)
Похожие вопросы
- Помогите решить задачку по программированию в Паскале!
- Кто разбирается в программировании? помогите решить задачку!
- Вопрос слишком странный для чего нужны cos sinus и многое другое в программировании ?
- Насколько полезно решать задачки из задачника по программированию? Не лучше ли писать сразу то, что надо для дела?
- Помогите пожалуйста по основам алгоритмизации и программирования (решить в виде задачки).
- Конец объектно-ориентированному программированию? Переходим от “черных” ящиков к ”белым” и ”прозрачным” ящикам?
- А какие языки программирования изучали в 80х и на чём вы их изучали?
- ОК. Куда, мать его, поступать-то? Или как я стал ненавидеть программирование
- Основы для программирования
- Вопрос для тех, кто уже опытный и профессиональный специалист в сфере программирования, web-программирования, дизайн!..