0 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 4
1

Удалить элементы массива, которые имеют значение больше среднего арифметического

02.03.2011, 22:52. Показов 1747. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите пожалуйста решить последнюю часть задачи.
в общем нужно удалить элементы массива, которые имеют значение больше среднего арифметического.

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
program kaka;
uses crt;
var i, k : integer;
a: array [1..20] of integer;
b: array[1..10] of integer;
sa, sum : real;
 
begin
clrscr;
for i:=1 to 20 do begin
a[i] :=random (89)+10;
WriteLn (a[i]:3);
end;
sum:=0;
FOR i:=1 to 20 do
begin
Write (a[i]);
Write(' ');
Sum:=Sum+a[i];
end;
WriteLn;
WriteLn ('Сумма чисел: ', sum);
sa:=sum/20;
writeln('Среднее арифметическое',sa:4:2);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2011, 22:52
Ответы с готовыми решениями:

Удалить из массива те элементы, которые больше среднего арифметического
Дан массив целых чисел D1,...,D30. Удалить из него те элементы, которые больше среднего...

Из массива удалить элементы, стоящие после максимального и имеющие значение меньше среднего арифметического всех элементов массива
Из массива удалить элементы, стоящие после максимального и имеющие значение меньше среднего...

В двумирному массиве заменить на ноль те элементы, которые имеют нечетное сумму индексов и больше среднего арифметического значений элементов массива
Дан одномерный массив А и двумирний В . В двумирному массиве заменить на ноль те элементы,...

Из массива удалить четные элементы, имеющие значение больше среднего арифметического всех элементов массива.
Из массива удалить четные элементы, имеющие значение больше среднего арифметического всех элементов...

5
0 / 0 / 1
Регистрация: 27.02.2011
Сообщений: 4
03.03.2011, 00:40 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
program kaka;
uses crt;
var i, k : integer;
a: array [1..20] of integer;
b: array [1..20] of integer;
sa, sum : real;
 
begin
clrscr;
for i:=1 to 20 do
    begin
    a[i] :=random (89)+10;
    WriteLn (a[i]:3);
    end;
sum:=0;
FOR i:=1 to 20 do
    begin
    Write (a[i]);
    Write(' ');
    Sum:=Sum+a[i];
    end;
WriteLn;
WriteLn ('Ñóììà ÷èñåë: ', sum);
sa:=sum/20;
writeln('Ñðåäíåå àðèôìåòè÷åñêîå',sa:4:2);
k:=1;
for i:=1 to 20 do
    if a[i] < sa then
    begin
    b[k]:=a[i];
    k:=k+1;
    end;
write('Ïîëó÷åííûé ìàññèâ - ');
for i:=1 to k do
    begin
    Write (b[i]);
    Write(' ');
    end;
end.
0
37 / 32 / 9
Регистрация: 04.03.2011
Сообщений: 120
04.03.2011, 18:39 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
var
  a: array [1..1000] of integer;
  i, N: integer;
  ma: real;
 
begin
  ma := 0;
  randomize;
  repeat
    write('Введите размер массива (1..100) ');
    readln(N);
  until n in [1..100];
  writeln('Массив до:');
  for i := 1 to N do
  begin
    a[i] := random(100);
    write(a[i], ' ');
    ma := ma + a[i];
  end;
  writeln;
  ma := ma / N;
  writeln('Массив после:');
  for i := 1 to N do
  begin
    if a[i] > ma then
    begin
      case a[i] of
        0..9: write('  ');
        10..99: write('   ');
      end;
    end
    else
      write(a[i], ' ');
  end;
  writeln;
end.
Сильно не ругайте, первый месяц паскалем занимаюсь
0
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,877
04.03.2011, 19:38 4
Сильно не ругайте, первый месяц паскалем занимаюсь
вывести ' ' это вообще не удаление.
1
37 / 32 / 9
Регистрация: 04.03.2011
Сообщений: 120
04.03.2011, 20:30 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

А что тогда делать? Сдвигать?

Добавлено через 41 минуту
Ок. Просто создаем еще один массив:
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
var
  a: array [1..100] of integer;
  b: array [1..100] of integer;
  i, k, N: integer;
  m: real;
 
begin
  k := 0;
  m := 0;
  randomize;
  repeat
    write('Введите размер массива (1..100) ');
    readln(N);
  until n in [1..100];
  writeln('Массив до:');
  for i := 1 to N do
  begin
    a[i] := random(100);
    write(a[i], ' ');
    m := m + (a[i] / n);
  end;
  writeln;
  for i := 1 to n do
  begin
    if a[i] <= m then
      b[i - k] := a[i]
    else
      k := k + 1;
  end;
  writeln('Массив после:');
  for i := 1 to n - k do
    write(b[i], ' ');
  writeln;
end.
Добавлено через 1 минуту
Хотя можно было б и одни массивом обойтись)
0
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
05.03.2011, 17:31 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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 kaka;
uses crt;
var n,i,j : integer;
    a: array [1..20] of integer;
    sa, sum : real;
begin
clrscr;
randomize;
n:=20;
writeln('Исходный массив:');
sum:=0;
for i:=1 to n do
 begin
  a[i] :=random (89)+10;
  Write(a[i]:4);
  sum:=sum+a[i];
 end;
WriteLn;
WriteLn ('Сумма чисел: ', sum);
sa:=sum/n;
writeln('Среднее арифметическое',sa:0:2);
i:=1;
while i<=n do
if a[i]>sa then
 begin
  if i=n then n:=n-1
  else
   begin
    for j:=i to n-1 do
    a[j]:=a[j+1];
    n:=n-1;
   end;
 end
else i:=i+1;
writeln('Элементы больше среднего удалены:');
for i:=1 to n do
write(a[i]:4);
readln
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2011, 17:31
Помогаю со студенческими работами здесь

Удалить все четные элементы, имеющие значение больше среднего арифметического всех элементов массива
Удалить все четные элементы, имеющие значение больше среднего арифметического всех элементов...

Удалить элементы массива больше среднего арифметического
Дан файл вещественных чисел, удалить элементы больше среднего арифметического. Не пойму, но почему,...

Удалить из нее все элементы, значение которых больше среднего арифметического
Задание: Дана последовательность х1...х20. Удалить из нее все элементы, значение которых больше...

Вывести на экран элементы массива, которые больше среднего арифметического всех его элементов
Ребят помогите пожалуйста решить два массива, а то мне трудно они даються=) 1)Дан массив А из N...


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

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

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