#pragma hdrstop
#include <iostream.h>
#include <vector.h>
//---------------------------------------------------------------------------
struct tabl{
char simbol;
int cout;
};
#pragma argsused
int main(int argc, char* argv[])
{
char st[] = "aaalkjasdhkwebsdfl;j";
vector<tabl> t;
for (int i=0; i<sizeof(st); i++){
bool z = false;
for (unsigned int j=0; j<t.size(); j++)
if (t[j].simbol == st){
t[j].cout++;
z = true;
}
if (!z){
tabl s = {st,1};
t.push_back(s);
}
}
for (unsigned int j=0; j<t.size(); j++)
cout << t[j].simbol << "-" << t[j].cout << endl;
cin >> "";
return 0;
}
Количество одинаковых элементов массива
Здравствуйте,
никак не могу разобраться с этой задачей:
необходимо посчитать количество одинаковых элементов в массиве.
те есть массив, например:
@dot=qw(1 2 3 6 7 2 1 1 2 6 1);
необходимо вывести такую статистику:
единиц - 4 штуки,
двоек - 3 штуки и тп
при этом надо учесть, что сам массив произвольного размера и количество повторяющихся элементов неизвестно.
Единственно что пришло в голову - скопировать массив и сравнивать каждый элемент массива со всеми элементами его копии. Но этот вариант крайне ресурсоёмкий. Наверняка есть какое-то более простое решение.
Специалисты, помогите пожалуйста.
Спасибо большое заранее.
Но на сях я бы сделал так. Более опитмального и лучшего способа это сделать, я не вижу.
Код:
Код:
#!/usr/bin/perl
@array = qw(1 2 1 1 5 6 7 8 9 1 2 3);
foreach $element (@array)
{
$hash{$element}++;
}
foreach $element (sort keys(%hash))
{
print "$element = $hash{$element}\n";
}
@array = qw(1 2 1 1 5 6 7 8 9 1 2 3);
foreach $element (@array)
{
$hash{$element}++;
}
foreach $element (sort keys(%hash))
{
print "$element = $hash{$element}\n";
}
3D Bob
улыбнул...
всё работает :-)
а вот ещё один вариант подсказали:
my @dot=qw(1 2 3 6 7 2 1 1 2 6 1);
my %hash;
$hash{$_}++ for @dot;
print "$_ => $hash{$_}\n" for sort keys %hash;
Цитата:
Originally posted by squirL
все проще гораздо...
3D Bob
улыбнул...
все проще гораздо...
Код:
#!/usr/bin/perl
@array = qw(1 2 1 1 5 6 7 8 9 1 2 3);
foreach $element (@array)
{
$hash{$element}++;
}
foreach $element (sort keys(%hash))
{
print "$element = $hash{$element}\n";
}
@array = qw(1 2 1 1 5 6 7 8 9 1 2 3);
foreach $element (@array)
{
$hash{$element}++;
}
foreach $element (sort keys(%hash))
{
print "$element = $hash{$element}\n";
}
3D Bob
улыбнул...
Да этот способ мне знаком. Но я его проигнорил.
Почему улыбнул?? Ты в курсе что что
$hash{$element}++;
В своем внутреннем алгоритме выполняет тоже самое что и мой код?
Цитата:
Originally posted by 3D Bob
Да этот способ мне знаком. Но я его проигнорил.
Почему улыбнул?? Ты в курсе что что
$hash{$element}++;
В своем внутреннем алгоритме выполняет тоже самое что и мой код?
Да этот способ мне знаком. Но я его проигнорил.
Почему улыбнул?? Ты в курсе что что
$hash{$element}++;
В своем внутреннем алгоритме выполняет тоже самое что и мой код?
да. правда насчет "тоже самое" не уверен. не видел реализации :)
что улыбнуло? не обижайся, но зачем на просьбу написать перловый код давать реализацию на С++? чтобы автор "переводом" занимался?
Цитата:
Originally posted by squirL
да. правда насчет "тоже самое" не уверен. не видел реализации :)
что улыбнуло? не обижайся, но зачем на просьбу написать перловый код давать реализацию на С++? чтобы автор "переводом" занимался?
да. правда насчет "тоже самое" не уверен. не видел реализации :)
что улыбнуло? не обижайся, но зачем на просьбу написать перловый код давать реализацию на С++? чтобы автор "переводом" занимался?
Хотел показать алгоритм.
Цитата:
#!/usr/bin/perl
@array = qw(1 2 1 1 5 6 7 8 9 1 2 3);
foreach $element (@array)
{
$hash{$element}++;
}
foreach $element (sort keys(%hash))
{
print "$element = $hash{$element}\n";
}
Может кто-нибудь перевести это в PHP
Спасибо большое заранее.
Код:
<?php
$array = Array(1,2,1,1,5,6,7,8,9,1,2,3);
foreach ($array as $element)
{
$hash[$element]++;
}
ksort($hash);
foreach ($hash as $element => $count)
{
echo $element." = ".$count."\n";
}
?>
$array = Array(1,2,1,1,5,6,7,8,9,1,2,3);
foreach ($array as $element)
{
$hash[$element]++;
}
ksort($hash);
foreach ($hash as $element => $count)
{
echo $element." = ".$count."\n";
}
?>
только интерпретатор закидает нотисами
Цитата: 3D Bob
Хотел показать алгоритм.
Ты бы понял алгоритм, если ты тебе дали его словестное описание на японском (идише, латинском, etc)? Не думаю... тут так же.
Эу! Первые 7 постов от 2005 года :)
Цитата: Phodopus
Эу! Первые 7 постов от 2005 года :)
Блин, как-то не заметил...
"Твою ж мать!..." (с) Э. Картман
... чертовы некропостеры :mad: