Tavera
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору вот условие 1.Дана матрица n*m. Найти наибольшие элементы в чётных строках, а наименьшие в нечётных строках. Вывести эти элементы на печать с указанием их индексов. Из найденных элементов создать линейный массив и отсортировать этот массив по возрастанию. программа зацикливается в конце и при сортировке один элемент пропадает "в последнем цикле i от 1 до n... а не от 2" и "i:=i+1 убрать надо, тогда не зациклится" не помогло Код: Program project; uses crt; var a:array[1..100,1..100] of integer; b,c:array[1..100] of integer; i,j,m,n,im,k,buf,xI,yI:integer; begin clrscr; writeln('n,m='); readln(n,m); writeln('дан массив '); for i:=1 to n do BEGIN for j:=1 to m do BEGIN yI:=5+yI; gotoxy(yi,5+I); read(a[i,j]); END; YI:=0; END; for i:=1 to n do begin im:=1; for j:=1 to m do begin if (i mod 2=1) and (a[i,j]<a[i,im]) then im:=j; if (i mod 2=0) and (a[i,j]>a[i,im]) then im:=j; end; b[i]:=a[i,im]; c[i]:=im; end; writeln(' наибольший элемент в четных строках '); for i:=1 to n do if i mod 2=0 then writeln(b[i]:4,' под индексом ',c[i]); writeln(' наименьший элемент в нечетных строках'); for i:=1 to n do if i mod 2=1 then writeln(b[i]:4,' под индексом ',c[i]); k:=0; while k<=n do begin for i:=2 to n do if b[i]<b[i-1] then begin buf:=b[i]; b[i]:=b[i-1]; b[i-1]:=buf; inc(k); end; writeln(' сортировка значение мин и макс '); for i:=2 to n do write(b[i]:4); i:=i+1; readkey; end; end. | 2.Дан массив А(m,n), найти максимальный и минимальный элементы. Массив А преобразовать в массив С, той же размерности, в котором минимальный из А меняется местами с первым элементом массива, а максимум и А меняются местами с последним элементом. неправельное преобразование массива А в массив С Код: Program project; uses crt; var a,c:array[1..100,1..100] of integer; i,n,m,j,imin,imax,jmin,jmax,YI:integer; begin clrscr; writeln('n,m='); readln(n,m); imin:=1; jmin:=1; imax:=1; jmax:=1; writeln(' Массив А'); for i:=1 to n do begin YI:=0; for j:=1 to m do begin YI:=5+YI; GOTOXY(YI,5+I); read(a[i,j]); c[i,j]:=a[i,j]; if a[i,j]>a[imax,jmax] then begin imax:=i; jmax:=j; end; if a[i,j]<a[imin,jmin] then begin imin:=i; jmin:=j; end; end; writeln; end; writeln('мин элемент ',a[imin,jmin],' в строке ',imin,', в столбце ',jmin); writeln('макс элемент ',a[imax,jmax],' в строке ',imax,', в столбце ',JMAX); c[imin,jmin]:=a[1,1]; c[1,1]:=a[imin,jmin]; c[imax,jmax]:=a[1,1]; c[n,m]:=a[imax,jmax]; writeln('Њ ббЁў ‘'); for i:=1 to n do begin for j:=1 to m do write(c[i,j]:3); writeln; end; readkey; end. |
|