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

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Найти в массиве минимальный и максимальный элементы., И вывести последовательность значений из этого диапазона, не встречающ
сообщение
Сообщение #1


Пионер
**

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

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


Есть одна программа на Паксале позволяющая это делать. Переписать на С++, но не моу найти где допустил ошибку. Мин. и макс. элементы ищет, а дальше нет. sad.gif

На Pascal:

program mass;
uses crt;
var Mass: array [1..100] of integer;
i, N, j, Min, Max: integer;
Flag, FlagOk: boolean;
begin

clrscr;
writeln('Введите размер массива');
readln(N);

for i:=1 to N do
begin
write('[', i,']= ');
readln(Mass[i]);
end;

writeln;
writeln('Данный одномерный массив чисел');
for i:= 1 to N do
write(Mass[i],' ');

Flag := false;
Min:= 1;
Max:= 1;
for i:=2 to N do
begin
if Mass[i] < Mass[Min] then Min:=i;
if Mass[i] > Mass[Max] then Max:=i;
end;
writeln;
writeln;
writeln('Минимальный элемент массива: ', Mass[Min]);
writeln('Максимальный элемент массива: ', Mass[Max]);
Flag := false;
writeln;

for i:= Mass[Min]+1 to Mass[Max]-1 do
begin
FlagOk := true;
for j:=1 to N do
if Mass[j]=i then
begin
FlagOk := false;
break;
end;
if (Flag = false) and (FlagOk) then
begin
Flag := true;
writeln('Целые числа между мин. и макс. элементами, которых нет в массиве: ');
end;
if FlagOk then
write(i,' ');
end;
if Flag = false then
writeln('Целых чисел между элементами массива нет');
readln;
end.




На С++:

#include <stdio.h>
#include <conio.h>

const int N = 5;
int main()
{
int
mass[N]={8, 6, 9, 2, 4,};
int i, j, min, max, buffer;
bool FlagOk, Flag;

printf("\n Ishodniy massiv: ");
for (int i=0; i<N; i++)
{ printf("%d. ", mass[i]); }

Flag=false; // Устанавливаем флаг на ложь.
min=0; max=0; // Обнуляем минимальное и максимальное значения.

/* Нахождение минимального и максимального элементов */
for(i=1; i<N; i++)
{ if(mass[i] < mass[min]) // Если следущий элемент меньше минимального, то...
{ min=i; } // назначаем его минимальным.
if(mass[i] > mass[max]) // Если следущий элемент больше максимального, то...
{ max=i; } // назначаем его минимальным.
}
printf("\n \n Min element = %d.", mass[min]); // Выводим минимальный элемент.
printf("\n \n Max element = %d.", mass[max]); // Выводим максимальный элемент.

/* Поиск целых чисел между мин. и макс. элементами, которых нет в массиве */
Flag=false; // Отмечаем, что искомые числа пока не найдены.
for (i=mass[min]+1; i<mass[max]-1; i++) /* Т.к. мин. и макс. элементы по условию
не должны принадлежать промежутку,
то и цикл начинается с числа больше
минимального на 1 и заканчивается
числом меньшим максимального на 1.
*/
{ FlagOk=true; // Предполагать, что текущее целое число будет одним из искомых.
for(j=1; j<N; j++)
{ if (mass[j]=i) /* Проверяеть есть ли среди элементов данного массива элемент,
равный предполагаемому. Если равный есть, то...
*/
{ FlagOk = false; // значит, что число не является искомым и...
break; } // цикл проверки данного числа прекратить и перейти к следующему числу.
if ((Flag = false) && (FlagOk)) /* Если же равный элемент в массиве не был найден,
и такой элемент оказался первым найденным, тогда...
*/
{ Flag = true; // Отмечается, что хотя бы одно число уже найдено.
printf("\n \n Celye chisla meghdu min & max elem. kotoryh net v massive: "); } /* Ввыести
целые числа между мин. и макс элементами, которых нет в массиве. */
if (FlagOk) // Если же равный элемент не был найден в данном массива, тогда...
{ printf(" %d.", i); } // вывести это число.
}
}
if (Flag=false) // Если же ни одного искомого числа не было найдено, тогда...
{ printf("\n \n Celye chisel megdu min. & max. elem. massiva net"); } /* вывести
сообщение, что чисел между мин. и макс. элементами массива нет. */

getch();
return 0;
}


Помогите пжста найти ошибку!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 20.04.2024 19:38
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name