Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 1
Регистрация: 16.11.2011
Сообщений: 24
1

Найти в массиве значение чаще встречаемого элемента

16.11.2011, 19:20. Показов 1409. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите с задачей надо найти в целочисленном массиве из 30 элементов значение чаще встречаемого элемента?? вот мой вариант недоделанной программы,скажите что не так и в чем проблема
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
program z;
uses crt;
var
i,g,n,q:integer;
a:array [1..30] of integer;
b:array [1..30] of integer;
begin
for i:=1 to 30 do begin
a[i]:= random(5);
write(a[i]:3);
end;
writeln;
n:=1;
for i:=1 to 30 do begin
for g:=3 to 30 do begin
if a[i]=a[g]then
for q:=1 to g-1 do begin
if a[q]=a[g] then
b[i]:=n+2
else b[i]:=n+1;
end;
end;
write;
write(b[i]:3);
end;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2011, 19:20
Ответы с готовыми решениями:

В массиве Х(N) найти значение максимального элемента массива и найти, сколько таких элементов
Помогите пожалуйста решить задачу: В массиве Х(N) найти значение максимального элемента массива и...

В массиве X(N) найти значение максимального элемента массива и найти, сколько таких элементов.
В массиве X(N) найти k1 - количество элементов массива, расположенных после минимального элемента и...

Найти номер и значение элемента в массиве
Доброго времени суток. Перерыл кучу всего, перечитал кучу, но ни в какую мне не дается...

в массиве А [n] отрицательные элементы заменить на значение максимального элемента, нули – на значение минимального элемента.
в массиве А отрицательные элементы заменить на значение максимального элемента, нули – на значение...

10
Заблокирован
16.11.2011, 19:30 2
Dimon12131, можешь задачу поточнее сформулировать? Тогда помогу. Несовсем ясно, что за встречаемый элемент.
0
1 / 1 / 1
Регистрация: 16.11.2011
Сообщений: 24
16.11.2011, 19:32  [ТС] 3
массив задается случайными числами,надо найти какое число встретиться чаще(больше) всего раз
0
Заблокирован
16.11.2011, 20:33 4
Dimon12131, Вот я переработал твой код:
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
program z;
 uses crt;
 
 const n=30;                      //количество чисел в массиве
 
 var
 i,j,max,chislo:integer;
 a:array [1..n] of integer;
 b:array [1..n] of integer;
 begin
 writeln('Исходные числа: ');
 for i:=1 to n do begin
 a[i]:= random(5);
 b[i]:= 1;
 write(a[i]:3);
 end;
 writeln;
 for i:=1 to n do begin
 for j:=1 to n do begin
 if i<>j then
 if(a[i]=a[j]) then b[i]:=b[i]+1;
 end;
 end;
  writeln;
  writeln('Сколько раз они встречаются: ');
  for i:=1 to n do write(b[i]:3);
  writeln;writeln;
  max:=b[1];
  chislo:=a[1];
  for i:=1 to n do if b[i]>max then begin max:=b[i];chislo:=a[i];end;
  for i:=1 to n do
  if b[i]=max then
  begin
  writeln('Больше всего раз встречается число "'+Inttostr(chislo)+'"  ('+Inttostr(max)+' раз/а)');
  end;
 end.
0
1 / 1 / 1
Регистрация: 16.11.2011
Сообщений: 24
16.11.2011, 20:39  [ТС] 5
спасибо,а в чем мои ошибки были?
0
Заблокирован
16.11.2011, 20:57 6
Dimon12131, ну во-первых цикл for почему то начинался с трех,
далее не было проверки вида
Pascal
1
if i=g then
, поэтому число считало себя само два раза,
ну и самая главная ошибка, это то, что у вас счетчик n не возрастал, чтобы он возрастал надо было сделать так:
Pascal
1
b[i]:=inc(n);
А не
Pascal
1
b[i]:=n+1;
n - это переменная в вашем случае. Например,
Pascal
1
b[i]=n+100 // b[i] будет равно 101
и
затем сразу же
Pascal
1
b[i+1]=n+5 // b[i] будет равно 6, а не 106
Ну и в коде то особой логики не было - программа работала не так, как вы её пытались заставить.
0
1 / 1 / 1
Регистрация: 16.11.2011
Сообщений: 24
16.11.2011, 21:48  [ТС] 7
спасибо за информацию,а если таких чисел будет несколько,которые будут чаще всего встречаться тогда как?
0
Заблокирован
17.11.2011, 16:15 8
Dimon12131, вообще то, я учел тот факт, что одинаковых чисел может быть несколько.
Проверьте, если хотите!
За это отвечает конструкция:
Pascal
1
2
3
4
5
 for i:=1 to n do
  if b[i]=max then
  begin
  writeln('Больше всего раз встречается число "'+Inttostr(chislo)+'"  ('+Inttostr(max)+' раз/а)');
  end;
0
1 / 1 / 1
Регистрация: 16.11.2011
Сообщений: 24
17.11.2011, 16:25  [ТС] 9
проверьте,оно не учитывает это,я переработал вашу программу на язык более понятный мне
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
program z;
 uses crt;
 const
 n=30;
 var
 i,g,max,chislo:integer;
 a:array [1..30] of integer;
 b:array [1..30] of integer;
 begin
 for i:=1 to n do begin
 a[i]:= random(31);
 b[i]:=1;
 write(a[i]:3);
 end;
 writeln;
 for i:=1 to n do begin
 for g:=1 to n do begin
 if i<>g then
 if a[i]=a[g]then
 b[i]:=b[i]+1;
 end;
 end;
 writeln;
 for i:=1 to n do write(b[i]:3);
 writeln;
 max:=b[1];
 chislo:=a[1];
 for i:=1 to n do
 if b[i]>max then begin
 max:=b[i];
 chislo:=a[i];
 end;
  for i:=1 to n do
  if b[i]=max then begin
  writeln('Больше всего встречается число',chislo);
  end;
  end.
0
Заблокирован
17.11.2011, 17:34 10
Dimon12131, может в массиве просто не встречается одинаковое количество раз максимальное число?
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
program z;
 uses crt;
 const
 n=30;
 var
 i,g,max,chislo:integer;
 a:array [1..30] of integer;
 b:array [1..30] of integer;
 begin
 for i:=1 to n do begin
 a[i]:= random(31);
 b[i]:=1;
 write(a[i]:3);
 end;
 writeln;
 for i:=1 to n do begin
 for g:=1 to n do begin
 if i<>g then
 if a[i]=a[g]then
 b[i]:=b[i]+1;
 end;
 end;
 writeln;
 for i:=1 to n do write(b[i]:3);
 writeln;
 max:=b[1];
 chislo:=a[1];
 for i:=1 to n do
 if b[i]>max then begin
 max:=b[i];
 chislo:=a[i];
 end;
 for i:=1 to n do
 begin
 if b[i]=max then begin
 writeln('Больше всего встречается число',chislo);
 end;
 end;
 end.
0
1 / 1 / 1
Регистрация: 16.11.2011
Сообщений: 24
17.11.2011, 18:39  [ТС] 11
скорее всего да,спасибо за помощь
0
17.11.2011, 18:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2011, 18:39
Помогаю со студенческими работами здесь

Найти в массиве из n чисел значение последнего положительного элемента
Здравствуйте! Нужна помощь по заданию Написать программный код двух методов:...

Найти значение элемента в массиве по номеру методом вставки
у меня есть код, который выводит элементы заданного пользователем массива в обратном порядке. мне...

Найдите значение и номер чаще всего встречающегося элемента списка
Ещё пару вопросов можно? Как это: 1.&quot;Напишите функцию, которая в случае вхождения заданного эле-...

Определить, какое абсолютное значение встречается в массиве чаще остальных
Дан массив на 200 элементов случайных цифр в диапазоне от -50 до 50. Определить, какое абсолютное...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru