Array122. Дано целое число K > 1 и целочисленный массив размера N. Удалить из массива серию с номером K. Если серий в массиве меньше K, то вывести массив без изменений.
>Решение Pascal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | program Array122; var a,b : array [1..20] of real; N,K,i,i2,ki: integer; begin Write('N: '); Readln(N); Write('K: '); Readln(K); Writeln('A: '); for i:=1 to N do begin write(i,' :'); readln(a[i]); end; i2:=0; ki:=1; for i:=1 to N-1 do begin if ki <> K then begin inc(i2); b[i2]:=a[i]; end; if a[i]<>a[i+1] then inc(ki); end; if ki <> K then begin inc(i2); b[i2]:=a[i]; end; a:=b; for i:=1 to i2 do writeln(a[i]); end. |
>
Решение C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include int main(void) { int a[20]; int n,k; printf("N: "); scanf("%i",&n); printf("K: "); scanf("%i",&k); int i; for (i=0; i<n; ++i){ printf("a[%i] : ",i+1); scanf("%i",&a[i]); } int nk=1,lenserial = (k==1?1:0); for (i=1; i<n;++i){ if (a[i-1]!=a[i]) nk++; if (nk==k) lenserial++; if (nk>k) a[i-lenserial]=a[i]; } n-=lenserial; for (i=0; i<n;++i) printf(" %i : %i\n",i+1,a[i]); return 0; } |