natalia595977
?>

Составьте программу вычисления суммы повторяющихся элементов одномерного массива. (паскаль)

Информатика

Ответы

beliaeva2
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-20,20); a.Println;
  Writeln('Sдубл=',a.GroupBy(c->c).Select(c->(c.Key,c.Count))
      .Where(c->c[1]>1).Select(c->c[0]*c[1]).Sum)
end.

Пример
n= 15
1 2 -10 18 8 -18 -8 -6 -11 -7 -10 -11 3 2 2
Sдубл=-36
snk7777202
Const
  n1=15;
  n2=10;
  n3=12;
type
  V=array[1..15] of string;
procedure M_in(s:string; var a:V; n:integer);
{ ввод данных в массив }
var i:integer;
begin
  Writeln('Вводите по одному ',n,' элементов массива ',s);
  for i:=1 to n do Readln(a[i])
end; 

procedure M_out(var a:V; n:integer; c:char);
{ выводит элементы, начинающиеся с указанного символа }
var i:integer;
begin
  Writeln('*** Слова на букву ',c,' ***');
  for i:=1 to n do
    if a[i][1]=c then Writeln(a[i]);
  Writeln
end; 

var
  s1,s2,s3:V;
begin
  M_in('S1',s1,n1);
  M_in('S2',s2,n2);
  M_in('S3',s3,n3);
  M_out(s1,n1,'В');
  M_out(s2,n2,'Ц');
  M_out(s3,n3,'А');
end.
marimelons795
Незнаю верно ли я все понял, но как вариант можно сделать так
//Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64

#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <iterator>
#include <algorithm>

bool DigitFirst(const std::string& rhs, const std::string& lhs)
{
    if (isdigit(rhs[0]) || isdigit(lhs[0]))
        return rhs < lhs;
}

bool LetterFirst(const std::string& rhs, const std::string& lhs)
{
    if (isalpha(rhs[0]) || isalpha(lhs[0]))
        return rhs < lhs;
}

const std::string TrueSort(std::string str, bool(*comparator)(const std::string&
rhs, const std::string& lhs))
{
    std::stringstream ss(str);
    std::vector<std::string> vstr(std::istream_iterator<std::string>(ss), {});
    std::sort(vstr.begin(), vstr.end(), comparator);
    ss.clear();
    std::copy(vstr.begin(), vstr.end(), std::ostream_iterator<std::string>(ss, " "));
    return ss.str();
}

int main()
{
    std::string first  = "position total 12345 2jz asd512fgh";
    std::string second = "year 10010 2018r r98k hello";
    std::cout << TrueSort(first,  DigitFirst ) << std::endl;
    std::cout << TrueSort(second, LetterFirst);
}

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Составьте программу вычисления суммы повторяющихся элементов одномерного массива. (паскаль)
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

evlampin
Роман_Гречина
joini09
manager6
dnikolay365
dashanna04225
kapitan19
Yevgenii1423
Ruslan374
ВладимировнаИП37
Yekaterina358
sky-elena712558
Filintver
levsha-27509
КириллЕгорова1906