![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
bioh |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задача такая:
Из данного массива удалите 4 таких элемента, чтобы оставшиеся элементы оброзовывали строго возрастающую последовательность Т.пример: 5,2,8,10,9,14,20,18,23,48,30,32 Отредактированный массив: 5,8,10,14,20,23,30,32 Удаленные элементы: 2,9,18,48 Препод сказал, что последовательность может быть любая, а удалить надо только четыре элемента. Помогите пожалуйста с идеей, буду очень благодарен. Заранее всем спасибо. |
![]() ![]() |
bioh |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помоги плз, у меня ничего не вышло
Наверное нужен, совершенно другой подход, нежели этот Код #include "stdafx.h" #include <conio.h> #include <stdio.h> int _tmain(int argc, _TCHAR* argv[]) { const int xMax=12, yMax=4; int x[xMax]={5,2,8,10,9,14,20,18,23,48,30,32}; int y[yMax],r[xMax],i,j,k; //for (i=0;i<xMax;i++) //{ // printf("enter value fo x[%d] =",i+1); // scanf("%d",&x[i]); //} for (i=0;i<xMax;i++) printf("X[%d] = %d\n",i+1,x[i]); j=0;k=0;i=0; if (x[i]>x[i+1] && x[i]>x[i+2]) {y[j]=i;j++;k++;} for (i=1;i<xMax-1;i++) { if (x[i]<x[i-1] && x[i]<x[i+1] && x[i-1]<x[i+1]) {y[j]=i;j++;k++;}; } if (x[i]<x[i-1] && x[i]<x[i-2]) {y[j]=i;j++;k++;} printf("K = %d\n",k); for (j=0;j<k;j++) printf("Y[%d] = %d\n",j+1,y[j]); for (j=0;j<k;j++) printf("X for delete[%d] = %d\n",j,x[y[j]]); int s=0; int flag; for (i=0;i<xMax;i++) { flag=0; if (y[0]!=i && y[1]!=i && y[2]!=i && y[3]!=i) {r[s]=x[i];flag=1;} if (flag!=0) s++; } for (i=0;i<(xMax-k);i++) printf("R[%d] = %d\n",i+1,r[i]); getch(); return 0; } По задумке препода, должны быть исключены числа : 2,9,18,48 под номерами: 1,4,7,10 соответственно читал http://algolist.manual.ru/olimp/rec_prb.php, не помогло, не понял. Буду очень благодарен, если подскажете, как это можно сделать попроще Сообщение отредактировано: bioh - 17.03.2007 10:55 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:35 |