Если не ошебаюсь то так ) Дан массив размера N. Найти номера тех элементов массива, которые больше своего правого соседа, и количество таких элементов. Найденные номера выводить в порядке их возрастания.
var a,d:array[1..255]of integer; i,c,n:byte; begin write('n='); read(n); for i:=1 to n do begin write('a[',i,']='); read(a) end; writeln; c:=0; for i:=1 to n-1 do if a>a[i+1] then begin c:=c+1; d[c]:=i end; writeln('TaKuX EJIEMEHTOB:',c); for i:=1 to c do write(d,' '); writeln end.
2) Дан целочисленный массив A размера N,являющийся перестановкой. Найти количество инверсий в данной перестановке,т.е. таких пар Ai И Aj элементов в которых большее число находится слева от меньшего:Ai>Aj при i<j>L) и целочисленный массив размера N. Заменить каждую серию массива, длина которой меньше L, на один элемент с нулевым значением. Что-то я не понял, что это за Л? Вот решил так:
var a:array[1..256]of integer; i,j,n:byte; c:integer; begin write('n='); read(n); for i:=1 to n do begin write('a[',i,']='); read(a) end; writeln; c:=0; for i:=1 to n-1 do for j:=i+1 to n do if a>a[j] then inc(c); writeln('Колличество инверсий - ',c); end.
Потное задание
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/*
*
* Сформировать массив из N элементов (N<50) , которыми могут быть только целые числа 0 и 1.
* Проверить, существует ли строгое чередование 0 и 1.
*
*/
#define ARR_SIZE 10
int main(void){
int arr[ARR_SIZE], i;
srand(time(NULL));
printf("\nArray: ");
for ( i = 0; i < ARR_SIZE; ++i )
printf("%d ", (arr[i] = rand() % 2));
for ( i = 1; i < ARR_SIZE && arr[i] != arr[i-1]; ++i )
;
printf("\nIs %s\n", ( i == ARR_SIZE ) ? "good" : "bad");
return 0;
}
Если не ошебаюсь то так ) Дан массив размера N. Найти номера тех элементов массива, которые больше своего правого соседа,
и количество таких элементов. Найденные номера выводить в порядке их возрастания.
var a,d:array[1..255]of integer;
i,c,n:byte;
begin
write('n=');
read(n);
for i:=1 to n do
begin
write('a[',i,']=');
read(a)
end;
writeln;
c:=0;
for i:=1 to n-1 do
if a>a[i+1] then
begin
c:=c+1;
d[c]:=i
end;
writeln('TaKuX EJIEMEHTOB:',c);
for i:=1 to c do write(d,' ');
writeln
end.
2) Дан целочисленный массив A размера N,являющийся перестановкой.
Найти количество инверсий в данной перестановке,т.е. таких пар Ai И Aj элементов
в которых большее число находится слева от меньшего:Ai>Aj при i<j>L) и целочисленный массив размера N.
Заменить каждую серию массива, длина которой меньше L, на один элемент с нулевым значением.
Что-то я не понял, что это за Л? Вот решил так:
var a:array[1..256]of integer;
i,j,n:byte;
c:integer;
begin
write('n=');
read(n);
for i:=1 to n do
begin
write('a[',i,']=');
read(a)
end;
writeln;
c:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
if a>a[j] then inc(c);
writeln('Колличество инверсий - ',c);
end.