IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> выписать элементы, которые не входят в массив
redeezko
сообщение 20.11.2009 22:17
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской

Репутация: -  0  +


Задача: пусть дан одномерный массив размерностью n, и Min-наименьшее, а Max-наибольшее из них. Получите в порядке возрастания все числа из интервала (min,max), которые не входят в данный массив.
Вот что я написал:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
const n=5;
type u=array [1..n] of integer;
var x:u;
i,min,max,v,k,j,a:integer;
begin
v:=0;
writeln('vvedite massiv');
for i:=1 to n do read(x[i]);
for i:=1 to n do
begin
k:=i;
for j:=i+1 to n do
if x[j]<x[k] then k:=j;
v:=x[i];
x[i]:=x[k];
x[k]:=v;
end;
min:=x[1];
max:=x[n];
while min<max do
begin
min:=min+1;
if x[i]<>min then
write(min,' ');
i:=i+1;
end;
readln;
readln;
end.

Но почему то у меня выводятся ВСЕ числа из данного интервала, кто знает подскажите где ошибка
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Unconnected
сообщение 21.11.2009 0:39
Сообщение #2


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Тогда можно так:

var min,max,i,i2,n:byte;
mas:array[1..255] of byte;
d:boolean;
begin
randomize;
writeln('Vvedite razmer massiva');
readln(n);
for i:=1 to n do mas[i]:=random(50)+1;
min:=mas[1];max:=mas[1];
for i:=2 to n do if min>mas[i] then min:=mas[i];
for i:=2 to n do if max<mas[i] then max:=mas[i];
for i:=min to max do
begin
d:=false;
for i2:=1 to n do if (mas[i2]=i) then begin
d:=true;
break;
end;
if not(d) then writeln(i);
end;
readln;
end.



--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 14:24
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"