По разделам



Задача Array 63


Даны два массива A и B размера 5, элементы которых упорядочены по возрастанию. Объединить эти массивы так, чтобы результирующий массив C (размера 10) остался упорядоченным по возрастанию.

Код (C/C++)

#include <stdio.h>
int main(void)
{
    float a[5],b[5],c[10];
 
    int k;
    for (k=0; k<5; ++k){
        printf("a[%i] : ",k+1);
        scanf("%f",&a[k]);
    }
 
    for (k=0; k<5; ++k){
        printf("b[%i] : ",k+1);
        scanf("%f",&b[k]);
    }
 
    int ka=0,kb=0;
 
    for (k=0; k<10; ++k){
        if ((ka>=5)||((a[ka]>b[kb])&&(kb<5) )) {
            c[k]=b[kb];
            ++kb;
        } else {
            c[k]=a[ka];
            ++ka;
        }
    }
    printf("C: \n");
    for (k=0; k<10; ++k) printf("  %i: %f\n",k+1,c[k]);
 
    return 0;
}

Код (Python)

import random

N = random.randrange(2,11)
a = sorted([random.randrange(0,10) for i in range(N)])
b = sorted([random.randrange(0,10) for i in range(N)])

print("N:",N)
print("Array a:\n",a)
print("Array b:\n",b)

c = sorted(a+b)

print("Length of c:\n",len(c))
print("Array c:\n",c)

c2 = []
i = 0
a_idx = 0
b_idx = 0
while i < 2*N and a_idx < N and b_idx < N :
##    print("i:",i,"; a_idx:",a_idx,"; b_idx:",b_idx)
    if a[a_idx] == b[b_idx] :
        c2.append(a[a_idx])
        c2.append(b[b_idx])
        a_idx += 1
        b_idx += 1
        i += 2
    elif a[a_idx] < b[b_idx] :
        c2.append(a[a_idx])
        a_idx += 1
        i += 1
    else :
        c2.append(b[b_idx])
        b_idx += 1
        i += 1
if a_idx == N :
    while b_idx < N :
        c2.append(b[b_idx])
        b_idx += 1
if b_idx == N :
    while a_idx < N :
        c2.append(a[a_idx])
        a_idx += 1

print("Length of c2:\n",len(c2))
print("Array c2:\n",c2)
									

Код (Pascal)

program Array63;
var
  a,b:array[1..5] of integer;
  c:array[1..10] of integer;
  ka,kb,k:Integer;
 
 
begin
  Writeln('A: ');
  for k:=1 to 5 do
   begin
 
    write(k,' :');
    readln(a[k]);
   end;
 
  Writeln('B: ');
  for k:=1 to 5 do
   begin
 
    write(k,' :');
    readln(b[k]);
   end;
 
 
   ka:=1;
   kb:=1;
 
   for k:=1 to 10 do
    begin
     if ka>5 then
      begin
       c[k]:=b[kb];
       inc(kb);
      end
     else
     if kb>5 then
      begin
       c[k]:=a[ka];
       inc(ka);
      end
     else
     if a[ka]<b[kb] then
      begin
       c[k]:=a[ka];
       inc(ka);
      end
     else
      begin
       c[k]:=b[kb];
       inc(kb);
      end;
    end;
 
 
  Writeln('C:');
  for k:=1 to 10 do writeln(k,' :',c[k]);
end.
									




Array. Абрамян
Array 1 Просмотров: 15
Array 2 Просмотров: 12
Array 3 Просмотров: 10
Array 4 Просмотров: 16
Array 5 Просмотров: 12
Array 6 Просмотров: 21
Array 7 Просмотров: 11
Array 8 Просмотров: 15
Array 9 Просмотров: 13
Array 10 Просмотров: 16
Array 11 Просмотров: 10
Array 12 Просмотров: 12
Array 13 Просмотров: 14
Array 14 Просмотров: 18
Array 15 Просмотров: 18
Array 16 Просмотров: 11
Array 17 Просмотров: 10
Array 18 Просмотров: 13
Array 19 Просмотров: 9
Array 20 Просмотров: 10
Array 21 Просмотров: 13
Array 22 Просмотров: 19
Array 23 Просмотров: 8
Array 24 Просмотров: 11
Array 25 Просмотров: 8
Array 26 Просмотров: 13
Array 27 Просмотров: 17
Array 28 Просмотров: 10
Array 29 Просмотров: 12
Array 30 Просмотров: 10
Array 31 Просмотров: 8
Array 32 Просмотров: 15
Array 33 Просмотров: 9
Array 34 Просмотров: 10
Array 35 Просмотров: 9
Array 36 Просмотров: 12
Array 37 Просмотров: 6
Array 38 Просмотров: 13
Array 39 Просмотров: 11
Array 40 Просмотров: 11
Array 41 Просмотров: 12
Array 42 Просмотров: 9
Array 43 Просмотров: 9
Array 44 Просмотров: 8
Array 45 Просмотров: 14
Array 46 Просмотров: 9
Array 47 Просмотров: 9
Array 48 Просмотров: 11
Array 49 Просмотров: 7
Array 50 Просмотров: 9
Array 51 Просмотров: 8
Array 52 Просмотров: 8
Array 53 Просмотров: 16
Array 54 Просмотров: 20
Array 55 Просмотров: 11
Array 56 Просмотров: 13
Array 57 Просмотров: 9
Array 58 Просмотров: 11
Array 59 Просмотров: 10
Array 60 Просмотров: 15
Array 61 Просмотров: 10
Array 62 Просмотров: 11
Array 63 Просмотров: 11
Array 64 Просмотров: 14
Array 65 Просмотров: 12
Array 66 Просмотров: 10
Array 67 Просмотров: 16
Array 68 Просмотров: 9
Array 69 Просмотров: 11
Array 70 Просмотров: 16
Array 71 Просмотров: 12
Array 72 Просмотров: 12
Array 73 Просмотров: 9
Array 74 Просмотров: 9
Array 75 Просмотров: 18
Array 76 Просмотров: 11
Array 77 Просмотров: 12
Array 78 Просмотров: 14
Array 79 Просмотров: 12
Array 80 Просмотров: 12
Array 81 Просмотров: 15
Array 82 Просмотров: 8
Array 83 Просмотров: 7
Array 84 Просмотров: 9
Array 85 Просмотров: 11
Array 86 Просмотров: 10
Array 87 Просмотров: 15
Array 88 Просмотров: 19
Array 89 Просмотров: 13
Array 90 Просмотров: 13
Array 91 Просмотров: 12
Array 92 Просмотров: 10
Array 93 Просмотров: 10
Array 94 Просмотров: 7
Array 95 Просмотров: 8
Array 96 Просмотров: 16
Array 97 Просмотров: 9
Array 98 Просмотров: 8
Array 99 Просмотров: 11
Array 100 Просмотров: 9
Array 101 Просмотров: 11
Array 102 Просмотров: 11
Array 103 Просмотров: 11
Array 104 Просмотров: 9
Array 105 Просмотров: 11
Array 106 Просмотров: 15
Array 107 Просмотров: 9
Array 108 Просмотров: 12
Array 109 Просмотров: 9
Array 110 Просмотров: 9
Array 111 Просмотров: 10
Array 112 Просмотров: 12
Array 113 Просмотров: 17
Array 114 Просмотров: 17
Array 115 Просмотров: 15
Array 116 Просмотров: 13
Array 117 Просмотров: 8
Array 118 Просмотров: 9
Array 119 Просмотров: 8
Array 120 Просмотров: 9
Array 121 Просмотров: 6
Array 122 Просмотров: 26
Array 123 Просмотров: 10
Array 124 Просмотров: 10
Array 125 Просмотров: 15
Array 126 Просмотров: 8
Array 127 Просмотров: 9
Array 128 Просмотров: 9
Array 129 Просмотров: 11
Array 130 Просмотров: 15
Array 131 Просмотров: 11
Array 132 Просмотров: 13
Array 133 Просмотров: 16
Array 134 Просмотров: 10
Array 135 Просмотров: 13
Array 136 Просмотров: 19
Array 137 Просмотров: 13
Array 138 Просмотров: 10
Array 139 Просмотров: 12
Array 140 Просмотров: 11

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться