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

Заменить все элементы массива, которые меньше среднего арифметического значения всех элементов

28.11.2013, 19:52. Показов 4561. Ответов 3
Метки нет (Все метки)

Помогите, пожалуйста, правильно написать программу. Я написал код, но он не запускается.

Задание.В данном массиве целых чисел заменить все элементы, которые меньше среднего арифметического значения всех элементов массива, на -1, и те, которые больше среднего арифметического значения всех элементов массива, на 1. Число элементов и массив значений просить у пользователя.




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
Var
Mass: array of integer;
i:= integer;
S:= integer;
j: integer;
begin S:=0;
Writeln (‘Введите размерность массива’);
Readln (length(mass));
For i:=0 to length (mass) do
begin
Writeln (‘Введите’, mass[i], ‘элементмассива’);
Readln (mass[i]);
End;
For j:=0 to length (mass) do begin
S:= mass(j) + S;
If j>= length (mass) do
S:= S/j;
End;
For i:=0 to length (mass) do begin
If mass(i)>S then begin
Mass[i]:= 1 else
Mass[i]:=-1; end;
Writeln (mass[i]);
End;
End.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2013, 19:52
Ответы с готовыми решениями:

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

Найти сумму всех элементов массива целых чисел, которые меньше среднего арифметического элементов массива
Помогите пожалуйста найти в чем ошибка? Пишет что арифметическое переполнение! Задание: Найти сумму...

В данном линейном массиве действительных чисел найти количество элементов, которые меньше среднего арифметического всех элементов этого массива
помогите!!!!!!! В данном линейном массиве действительных чисел найти количество элементов,...

Заменить все элементы массива меньше среднего значения
Элементы массива - целые числа в пределах от 2 до 15. Заменить все элементы массива меньше среднего...

3
509 / 387 / 210
Регистрация: 28.07.2011
Сообщений: 2,163
28.11.2013, 21:34 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
uses crt;
const nmax=100;
var
mass: array [1..nmax] of integer;
i: integer;
S: integer;
j: integer;
n: integer;
sr: real;
begin 
S:=0;
Writeln ('Введите размер массива, не больше ',nmax);
Readln (n);
 
For i:=1 to n do
begin
Write ('Введите', i, ' элемент массива: ');
Readln (mass[i]);
End;
 
writeln('Получившийся массив : ');
For i:=1 to n do 
begin
write(mass[i],' ');
S:= mass[i] + S;
end;
 
sr:=s/n;
 
For i:=1 to n do 
begin
If mass[i]>sr then 
Mass[i]:= 1 
else
Mass[i]:=-1; 
Writeln (mass[i]);
End;
readln;
End.
1
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 3
30.11.2013, 00:01  [ТС] 3
Fakeoke, спасибо Вам огромное) Вы мне очень помогли)
0
905 / 232 / 100
Регистрация: 21.10.2012
Сообщений: 567
30.11.2013, 02:13 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Есть маленькое замечание.
В ниже приведенном тексте программы есть небольшое отклонение от условия задачи.

Цитата Сообщение от Fakeoke Посмотреть сообщение
If mass[i]>sr then
Mass[i]:= 1
else
Mass[i]:=-1;
Дело в том, что "-1" должна появляться только там, где элемент меньше среднего.

А если редкая, но возможная ситуация, что элемент равен среднему, тогда по условию ничего делать не надо!
А в проге: вместо этого элемента будет записана "-1".

Добавлено через 1 час 47 минут
Полагаю, так будет ближе к условию задачи:

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
uses crt;
const nmax=100;
var
     mass       : array [1..nmax] of integer;
     i, S, j, n : integer;
     sr: real;
begin
  S:=0;clrscr;                                                                            
repeat
  Write('Введите размер массива, не больше ',nmax,' = ');
  Readln (n);
until (n>0) and (n<=nmax);
 
For i:=1 to n do
 begin
  Write ('Введите ', i, ' элемент массива: ');
  Readln (mass[i]);
 End;
 
writeln('Исходный массив : ');
For i:=1 to n do
 begin
  write(mass[i],' ');
  S:= mass[i] + S;
end;writeln;
sr:=s/n;
 
writeln('Получившийся массив : ');
For i:=1 to n do
 begin
 If mass[i]>sr then
    Mass[i]:= 1
               else
    if mass[i]<sr then
       Mass[i]:=-1;
 Write(mass[i],' ');
 End;writeln;
readln;
End.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2013, 02:13
Помогаю со студенческими работами здесь

Элементы, меньшие среднего арифметического всех элементов массива нужно заменить нулём.
Составить программу, которая преобразует массивы А(10) и В(12) следующим образом: элементы, меньшие...

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

Заменить все элементы, значение которых меньше среднего арифметического всех элементов массива на нулевые
Мое задание: Заменить все элементы, значение которых меньше среднего арифметического всех элементов...

Вывести на экран элементы и индексы элементов, которые меньше среднего значения всех элементов массива
Написать программу, в которой: 1. Задать массив целых чисел длиной согласно варианту. ...


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

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

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