ColdSight
1

Сформировать одномерный массив С, содержащий элементы массива А,присутствующие в массиве В четное число раз.

29.07.2010, 10:52. Показов 900. Ответов 1
Метки нет (Все метки)

Сформировать одномерный массив С, содержащий элементы массива А,присутствующие в массиве В четное число раз. Элементы в массиве С не должны повторяться. Дополнительный массив не использовать.
1)Эл-ты массивов - целые числа.
2)Кол-во эл-ов в исходных массивах не более 20 в каждом.

Никак не получается добиться того,чтобы в массиве С эл-ты не повторялись.
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
var
i,j,kol,k,n,m,l:integer;
A,B,C : array [1..20] of integer;
flag:boolean;
 
begin
k:=1;
writeln('razmernost massiva A');
readln (n);
      for i:=1 to n do
              begin
                  write('A[',i,']=');
                  readln (A[i]);
      end;
for i:=1 to n do
        begin
           write('B[',i,']=');
           readln (B[i]);
end;
                                     Writeln('massiv A');
         For i:=1 to n do
              write (A [i],' ');
              writeln;
                                     Writeln('massiv B');
        For i:=1 to n do
              write (B [i],' ');
              writeln;
For i:=1 to n do begin
    kol:=0;
    For j:=1 to n do begin
        If A[i]=B[j] then
        Kol:=Kol+1;
       If Kol mod 2 =0 then
       If k=0 then begin
       k:=k+1;
       C[k]:=A[i];
                     
                     end
       
       else begin
       Flag:=True;
       m:=1;
             end;
       
       While (m<=k) and Flag do begin
       If A[i]=C[m] then Flag:=False
       else 
       m:=m+1;
       If Flag then
       k:=k+1;
       C[k]:=A[i]
                                end;
                end;
                {pause;}
Writeln('polu4ivshiysya massiv C');
For l:=1 to 20 do
    write (C [l],' ');
    writeln;
    pause;
    end;
end.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2010, 10:52
Ответы с готовыми решениями:

Дан одномерный массив Z[n]. Сформировать массив L, содержащий только нечетные элементы массива Z
Задача на Pascal. Не решу - зачёт не поставят.

Выбрать все элементы массива A, присутствующие в массиве B один раз
Даны два одномерных массива целых чисел A и В. Вычислить одномерный массив С, который содержит все...

Массив: Сформировать массив С, содержащий те элементы массива А, имеющие значения кратные М, которые есть в массиве В.
Сформировать одномерный массив С , содержащий те элементы исходных массивов А и (или) В, которые...

Элементы, присутствующие в массиве B 1 раз, кроме элементов, содержащихся в массиве A
Что не так? не могу понять Задание: Даны два одномерных массива целых чисел A и В. Вычислить...

1
Почетный модератор
64277 / 47576 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
29.07.2010, 11:26 2
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
uses crt;
const nmax=20;
var a,b,c:array[1..nmax] of integer;
    n,m,k,i,j,p,q,r:byte;
    x:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива A до ',nmax,' n=');
readln(n);
until n in [1..nmax];
for i:=1 to n do
 begin
  write('a[',i,']=');
  readln(a[i]);
 end;
repeat
write('Размер массива B до ',nmax,' m=');
readln(m);
until m in [1..nmax];
for i:=1 to m do
 begin
  write('b[',i,']=');
  readln(b[i]);
 end;
clrscr;
writeln('Массив A:');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln;
writeln('Массив B:');
for i:=1 to m do
write(b[i],' ');
writeln;
writeln;
k:=0;
for i:=1 to n do
 begin
  p:=0;
  for j:=1 to m do
  if b[j]=a[i] then p:=p+1;
  if (p>0)and(p mod 2=0) then{если четное число раз}
   begin
    x:=a[i];{запомним}
    k:=k+1;{посчитаем}
    c[k]:=a[i];{запишем в массив}
    for q:=m downto 1 do{пройдем по массиву В с конца}
    if b[q]=x then{все эти элементы}
     begin
      for r:=q to m-1 do{сдвигом влево}
      b[r]:=b[r+1];{на 1 позицию удалим}
      m:=m-1;{уменьшим размер массива В}
     end
    end;
 end;
if k=0 then write('Заданных элементов нет!')
else
 begin
  writeln('Массив С:');
  for i:=1 to k do
  write(c[i],' ');
 end;
readln
end.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2010, 11:26
Помогаю со студенческими работами здесь

Сформировать одномерный массив содержащий максимальные элементы каждой строки
Дана квадратная матрица размером n x n. Сформировать одномерный массив, содержащий максимальные...

Сформировать одномерный массив, содержащий только положительные элементы исходного
Дан целочисленный массив 5*5. Написать программу, формирующую одномерный массив, содержащий только...

Сформировать одномерный массив, содержащий элементы главной диагонали исходной матрицы.
Дана матрица 7х7. Сформировать одномерный массив содержащий элементы главной диагонали исходной...

Сформировать одномерный массив, содержащий минимальные элементы каждого столбца матрицы
дана квадратная матрица А, размером nxn. сформировать одномерный массив, содержащий минимальные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru