Предмет: Информатика,
автор: osustream
Помогите написать программу на PascalABCNET
На вход программе подается последовательность чисел от 1 до 9, заканчивающаяся нулем. Всего будет введено не более 100000 чисел. Подсчитайте в этой последовательности количество единиц, количество двоек, количество троек и т. д. и выдайте результат. В выходных данных всегда должно быть 9 чисел.
ВХОДНЫЕ ДАННЫЕ
Дана последовательность цифр от 1 до 9, заканчивающаяся нулем.
ВЫХОДНЫЕ ДАННЫЕ
Выведите через пробел количество единиц, двоек, …, девяток в этой последовательности
Приложения:
Ответы
Автор ответа:
0
Программа написана немного через ****, но работает четко.
Приложения:
Автор ответа:
0
спасибо
Автор ответа:
0
Первая строчка скопировалась 2 раза... уже исправил.
Автор ответа:
0
1. Для чего метка m? 2. Вы забыли указать, что это работает не во всякой версии Паскаля.
Автор ответа:
0
Хотя... неправ, в условии указана версия.
Автор ответа:
0
Метку забыл убрать. Исправлено.
Автор ответа:
0
var
n:array[1..9] of integer;
i,k:integer;
c:char;
begin
k:=Ord('0');
for i:=1 to 9 do n[i]:=0; //очистка счетчиков
Writeln('Вводите цифры от 1 до 9, 0 конец ввода');
repeat
Read(c);
if c in ['1'..'9'] then Inc(n[Ord(c)-k])
until c='0';
for i:=1 to 9 do Write(n[i],' ')
end.
Тестовое решение:
Вводите цифры от 1 до 9, 0 конец ввода
1
4
3
5
3
9
2
4
1
1
5
6
0
3 1 2 2 2 1 0 0 1
n:array[1..9] of integer;
i,k:integer;
c:char;
begin
k:=Ord('0');
for i:=1 to 9 do n[i]:=0; //очистка счетчиков
Writeln('Вводите цифры от 1 до 9, 0 конец ввода');
repeat
Read(c);
if c in ['1'..'9'] then Inc(n[Ord(c)-k])
until c='0';
for i:=1 to 9 do Write(n[i],' ')
end.
Тестовое решение:
Вводите цифры от 1 до 9, 0 конец ввода
1
4
3
5
3
9
2
4
1
1
5
6
0
3 1 2 2 2 1 0 0 1
Приложения:
Автор ответа:
0
var
n:array[0..9] of integer;
i,c:integer;
begin
for i:=0 to 9 do n[i]:=0; //очистка счетчиков
Writeln('Вводите цифры от 1 до 9, 0 конец ввода');
repeat
Read(c);
inc(n[c]);
until c=0;
for i:=1 to 9 do Write(n[i],' ')
end.
n:array[0..9] of integer;
i,c:integer;
begin
for i:=0 to 9 do n[i]:=0; //очистка счетчиков
Writeln('Вводите цифры от 1 до 9, 0 конец ввода');
repeat
Read(c);
inc(n[c]);
until c=0;
for i:=1 to 9 do Write(n[i],' ')
end.
Автор ответа:
0
В Вашем варианте нет "защиты от дурака". Если по ошибке или намеренно будет введено что-то, отличное от одной цифры, например, число 10, программа аварийно завершится по неверной адресации.
Похожие вопросы
Предмет: Математика,
автор: vlad58851
Предмет: Қазақ тiлi,
автор: Ponchik177
Предмет: Математика,
автор: vinichenkoshadow
Предмет: Литература,
автор: chernichkin1967
Предмет: Биология,
автор: irinka20022011