Тут есть несколько ошибок: 1. Отсутствует ключевое слово begin в основной программе. Насколько я понял, оно должно стоять перед k:=0.
2. Внутри функции ODD не объявлена локальная переменная i, которая используется в цикле.
3. В основной программе вы вызываете функцию ODD и передаете ей аргумент с[i], хотя в описании функции аргумент не обозначен.
4. В функции ODD происходит обработка глобального массива C, что делать нельзя.
5. Функция должна возвращать какое-то значение. В описании вы указали integer, а в основной программе в строке if Odd(c[i])... вы подразумеваете, что оно должно быть булевым, т.е. или True или False.
Исправьте, и может быть (если ошибок больше нет) программа заработает.
Судя, по ключевым словам надо написать программу на языке Pascal с использованием цикла с потусловием. Алгоритм может быть такой: 1. Создадим массив для хранения информации о количестве встретившихся цифр во введенном числе. 2. Ввод самого числа, далее в цикле находим остаток от деления на 10 и увеличиваем значение элемента массива с индексом равным получившемуся остатку на 1. Делим число нацело на десять. Повторяем пока число не равно 0. 3. Выводим результат. В массиве индекс элемента указывает на цифру числа, а значение элемента на количество этой цифры в числе.
//РасаlABC.net v3.1
var a:array[0..9]of integer;
n,i,m: integer;
begin
readln(n);
repeat
m:=n mod 10;
inc(a[m]);
n:=n div 10;
until n<=0;
for i := 0 to 9 do begin
if a[i]>1 then writeln('Цифра:',i,' количество:', a[i]);
1. Отсутствует ключевое слово begin в основной программе. Насколько я понял, оно должно стоять перед k:=0.
2. Внутри функции ODD не объявлена локальная переменная i, которая используется в цикле.
3. В основной программе вы вызываете функцию ODD и передаете ей аргумент с[i], хотя в описании функции аргумент не обозначен.
4. В функции ODD происходит обработка глобального массива C, что делать нельзя.
5. Функция должна возвращать какое-то значение. В описании вы указали integer, а в основной программе в строке if Odd(c[i])... вы подразумеваете, что оно должно быть булевым, т.е. или True или False.
Исправьте, и может быть (если ошибок больше нет) программа заработает.
1. Создадим массив для хранения информации о количестве встретившихся цифр во введенном числе.
2. Ввод самого числа, далее в цикле находим остаток от деления на 10 и увеличиваем значение элемента массива с индексом равным получившемуся остатку на 1. Делим число нацело на десять. Повторяем пока число не равно 0.
3. Выводим результат. В массиве индекс элемента указывает на цифру числа, а значение элемента на количество этой цифры в числе.
//РасаlABC.net v3.1
var a:array[0..9]of integer;
n,i,m: integer;
begin
readln(n);
repeat
m:=n mod 10;
inc(a[m]);
n:=n div 10;
until n<=0;
for i := 0 to 9 do begin
if a[i]>1 then writeln('Цифра:',i,' количество:', a[i]);
end;
end.
Тестовый прогон:
1112333
Цифра:1 количество:3
Цифра:3 количество:3