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

Выяснить, каких элементов в массиве больше: положительных, отрицательных или нулей

08.03.2017, 00:13. Показов 1375. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выяснить каких элементов больше: положительных, отрицательных или нулей?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.03.2017, 00:13
Ответы с готовыми решениями:

Каких чисел в массиве больше, положительных или отрицательных
Напишите программу, которая вводит с клавиатуры 20 реальных чисел, организовывает их хранение в...

Определить, каких элементов массива больше: положительных или отрицательных
В заданной матрице из 7 строк и 9 столбцов, не содержащей нулевых элементов, определить, каких...

Выяснить, каких элементов в массиве больше — отрицательных или положительных
Ввести с клавиатуры число n. Динамически выделить память для массива целых чисел размером n....

Выяснить, каких элементов в массиве больше - положительных или отрицательных
Уважаемые дамы и господа. Я решил перечисленные мною задачи но не до конца не могу указать вторые...

10
1754 / 1346 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
08.03.2017, 01:33 2
Pascal
1
2
3
4
5
6
7
8
9
10
/////////////////////
kp:=0; ko:=0; kn:=0;
for i:=1 to n do
if a[i]>0 then kp+=1
else if a[i]<0 then ko+=1
else if a[i]=0 then kn+=1;
if (kp>ko) and (kp>kn) then write('Положительных больше')
else (ko>kp) and (ko>kn) then write('Отрицательных больше')
else (kn>kp) and (kn>ko) then write('Нулей больше');
/////////////////////
0
Эксперт Pascal/Delphi
2385 / 1297 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
08.03.2017, 04:56 3
Hitoku, а если всех элементов поровну?
0
1754 / 1346 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
08.03.2017, 05:11 4
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
begin
  var a:=ArrRandom(ReadInteger('Количество элементов:'),-50,50);
  println('Массив:',a);
  var otr:=a.Where(x -> x<0).Count;
  var pol:=a.Where(x -> x>0).Count;
  var nul:=a.Length-otr-pol;
  if (otr>pol) and (otr>nul) then writeln('Отрицательных больше')
  else if (pol>otr) and (pol>nul) then writeln('Положительных больше')
  else if (nul>pol) and (nul>otr) then writeln('Нулевых больше')
  else if (nul=pol) and (pol=otr) and (otr=pol) then writeln('Поровну')
  else if (pol=otr) and (otr=pol) then writeln('Положительных и отрицательных поровну');
end.
Добавлено через 6 минут
В таком диапазоне, вероятность, что нулевых будет столько же, сколько положительных и отрицательных, очень мала. Но при желании по аналогии можно добавить условия
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32588 / 21058 / 8133
Регистрация: 22.10.2011
Сообщений: 36,330
Записей в блоге: 8
08.03.2017, 15:10 5
Я бы сделал как-то вот так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
begin
  var a := Arr(1, 2, 3, 0, 4, 0, -1, -2, -3, -4, 0, 0);
  var names := Arr('отрицательных', 'нулевых', 'положительных');
  
  var counts := a.GroupBy(v -> Succ(Sign(v))).Select(g -> (g.Key, g.Count)).OrderByDescending(v -> v[1]);
  var ix := counts.Select(v -> (v[1] = counts.First[1]) ? v : (-1, 0)).Where(v -> v[0] >= 0).Select(v -> v[0]);
  case ix.Count of
  3 : writeln('всех элементов поровну');
  2 : writeln(ix.Select(v -> names[v]).JoinIntoString(' и '), ' поровну и больше, чем ', names[3 - ix.Sum]);
  1 : writeln(names[ix.First], ' больше всех')
  end;
end.
0
0 / 0 / 0
Регистрация: 15.01.2017
Сообщений: 84
08.03.2017, 22:00  [ТС] 6
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Program ony;
CONST n=1;
Var a,b,c,d:integer;
x: array[1..n] of integer;
BEGIN
a:=Random(1000);
For var i:=1 to n do
begin
a:=0; b:=0; b:=0; 
FOR d:=1 to n do
x[a]:=random(1,10);
IF x[d]>0 then a+=1
ELSE  IF x[d]<0 then b+=1
ELSE  IF x[d]=0 then c+=1;
IF (a>b) and (a>c) then Write('Положительных больше')
ELSE   IF (b>a) and (b>c) then  Write('Отрицательных больше')
ELSE   IF (c>a) and (c>b) then Write('Нулей больше');
end;
END.
Вот с этой задачей. Что здесь не так?
0
1754 / 1346 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
08.03.2017, 22:09 7
Цитата Сообщение от Aleshh Посмотреть сообщение
Что здесь не так?
Много чего на самом деле... В рандоме указан диапазон без отрицательных чисел. Лишний цикл для i, вывод ответа вкручен в цикл, константа n равная 1, при этом массив от 1 до n. Вот, исправил:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Var a,b,c:integer;
x: array[1..100] of integer;
begin
  var n:=ReadlnInteger('Количество элементов =');
  a:=0; b:=0; b:=0; 
  for var i:=1 to n do begin
    x[i]:=-10+random(20); write(x[i],' ');
    if x[i]>0 then a+=1
      else if x[i]<0 then b+=1
        else if x[i]=0 then c+=1;
  end;
  writeln;
  IF (a>b) and (a>c) then Write('Положительных больше')
    ELSE IF (b>a) and (b>c) then Write('Отрицательных больше')
      ELSE IF (c>a) and (c>b) then Write('Нулей больше');
end.
1
0 / 0 / 0
Регистрация: 15.01.2017
Сообщений: 84
08.03.2017, 22:15  [ТС] 8
var n:=ReadlnInteger('Количество элементов =');
как вот эту строку заменить?
0
1754 / 1346 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
08.03.2017, 22:16 9
Лучший ответ Сообщение было отмечено Aleshh как решение

Решение

Pascal
4
write('Количество элементов = '); readln(n);
1
101 / 97 / 112
Регистрация: 28.11.2016
Сообщений: 528
08.03.2017, 22:17 10
Pascal
1
2
3
4
5
Var a,b,c,n:integer;
...
begin
readln(n);
...
0
0 / 0 / 0
Регистрация: 15.01.2017
Сообщений: 84
08.03.2017, 22:18  [ТС] 11
СПАСИБО БОЛЬШОЕ!!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2017, 22:18
Помогаю со студенческими работами здесь

Определить, каких элементов в последовательности больше: положительных, отрицательных или нулей
составить программу, определяющую , какиз элементов в последовательности больше?положительных ,...

В массиве каких больше элементов положительных или отрицательных?
В массиве каких больше элементов положительных или отрицательных?

Каких элементов больше в массиве: положительных или отрицательных
/*Задан числовой массив А(50). Определить, каких элементов больше в этом массиве: положительных...

Подсчитать, каких элементов в массиве больше - положительных или отрицательных
Дан целочисленный массив Т(11). Подсчитать, каких элементов в массиве больше - положительных или...


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

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

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