IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> задача на вывод часто встречающихся цифр
Kosmik
сообщение 25.11.2009 16:47
Сообщение #1


...
*

Группа: Пользователи
Сообщений: 31
Пол: Женский
Реальное имя: Надежда

Репутация: -  0  +


Натуральные числа вводятся с клавиатуры до тех пор, пока не будет введено число -1. Написать программу, выводящую введенные цифры: сначала выводится наиболее часто встречающаяся цифра, в конце наименее встречающаяся цифра.

Подскажите пожалуйста как ее решить...может через массив? pardon.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Unconnected
сообщение 25.11.2009 22:23
Сообщение #2


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Тогда так:

var mas:array[0..9] of byte;
a:string;
i,min,max,k,er:integer;

begin
for i:=0 to 9 do mas[i]:=0;
repeat
readln(a);
if (a<>'-1') then for i:=1 to length(a) do begin
val(a[i],k,er);
inc(mas[k]);
end;
until (a='-1');
min:=mas[0];max:=mas[0];
for i:=1 to 9 do
begin
if (min>mas[i]) then min:=mas[i];
if (max<mas[i]) then max:=mas[i];
end;
for i:=0 to 9 do
begin
if (min=mas[i]) then writeln('Reje vseh vstrechaetsya chislo ',i);
if (max=mas[i]) then writeln('Chaje vseh vstrechaetsya chislo ',i);
end;
readln;
end.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 26.11.2009 4:59
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Unconnected @ 25.11.2009 22:23) *
Тогда так:
Unconnected, мне кажется нужно выводить ВСЕ встретившиеся цифры, а не только самые (я так понял).
Я, может, сделал бы так..
var
s: string;
i: integer;
Stat: array[' '..'9']of integer;
c,max: char;

begin
FillChar(Stat,SizeOf(Stat),#0);
repeat
ReadLn(s);
for i:=1 to Length(s) do Inc(Stat[s[i]]);
until s='-1';
Dec(Stat['1']);
repeat
max:=' ';
for c:='0' to '9' do if Stat[c]>Stat[max] then max:=c;
Stat[max]:=0;
WriteLn(max)
until max=' ';
ReadLn
end.
Тут я постарался избежать сортировки массива в чистом виде (и это избавило прогу от одного лишнего цикла и дополнительного массива). Кроме прочего, использование индекса массива и цикла типа char, надеюсь, полезно для обучения. И вообще, тут несколько хитростей, некоторые из них немного спорные.. ))

Здесь нету защиты от неправильного формата ввода.. Зато можно вводить по нескольку чисел на одной строке)). А вообще, конечно, такие вещи следует завершать по вводу пустой строки.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Kosmik   задача на вывод часто встречающихся цифр   25.11.2009 16:47
volvo   Может и через массив, если в задании не оговорено ...   25.11.2009 17:08
Unconnected   Тут с массивом, но он используется не для хранения...   25.11.2009 17:34
Kosmik   Программка конечно работает но выдает не тот резул...   25.11.2009 20:04
volvo   Ну, я взял и ввел первое число 10, что будет?   25.11.2009 17:42
Unconnected   Так а что в задаче надо то?.. В названии темы ре...   25.11.2009 21:12
volvo   ну, так возьми и перечитай задание. Задача: вводит...   25.11.2009 21:50
Unconnected   Тогда так: var mas:array[0..9] of byte; a:str...   25.11.2009 22:23
Lapp   Тогда так:Unconnected, мне кажется нужно выводить ...   26.11.2009 4:59
Lapp   Фу ты, я чуть не перепутал volvo с Kosmik )). Кто ...   26.11.2009 5:29
Kosmik   Фу ты, я чуть не перепутал volvo с Kosmik )). Кто...   26.11.2009 10:29
Lapp   У нас аватры похожие получились :)Точно!! ...   26.11.2009 12:24
Unconnected   А мне кажется, только избранные) Ибо задание я п...   26.11.2009 13:03
volvo   Похоже, Lapp прав. Мне тоже кажется, что надо выве...   26.11.2009 13:09
Kosmik   [hide="Оффтоп"][b]Kosmik, у тебя котей...   26.11.2009 13:30


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 13:56
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"