Определить индекс элемента массива, значение которого наиболее близко к заданному k - Pascal ABC
Формулировка задачи:
Помогите пожалуйста составить программу.
Ввести с клавиатуры одномерный массив, состоящий из 10 элементов и число k. Определить индекс элемента массива, значение которого наиболее близко к k. Если это значение меньше k, то поменять местами этот элемент и последний, если больше k, то поменять местами этот элемент и первый. На экран вывести исходный массив в одну строку, новый массив в одну строку и индекс найденного элемента.Отсортировать новый массив методом выбора. Вывести отсортированный массив на экран.
Решение задачи: «Определить индекс элемента массива, значение которого наиболее близко к заданному k»
textual
Листинг программы
const n=10; var a:array[1..n] of integer; k,i,j,p,mn,x:integer; begin writeln('Введите ',n,' целых чисел'); for i:=1 to n do begin write('a[',i,']='); readln(a[i]); end; write('Введите целое число k='); readln(k); p:=1; mn:=abs(k-a[1]); for i:=2 to n do if abs(k-a[i])<mn then begin mn:=abs(k-a[i]); p:=i; end; writeln('Введенный массив'); for i:=1 to n do write(a[i],' '); writeln; writeln('Индекс наиболее близкого к числу ',k,'=',p); if a[p]>k then begin x:=a[n]; a[n]:=a[p]; a[p]:=x; end else begin x:=a[1]; a[1]:=a[p]; a[p]:=x; end; writeln('Обмен элементов'); for i:=1 to n do write(a[i],' '); writeln; for i:=1 to n-1 do begin k:=i; for j:=i+1 to n do if a[j]<a[k] then k:=j; x:=a[i]; a[i]:=a[k]; a[k]:=x; end; writeln('Отсортированный массив'); for i:=1 to n do write(a[i],' '); end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д