Если с клавиатуры вводить оценки, то так
var
a,b,c,d:integer;
begin
a:=0; b:=0; c:=0;
for i:=1 to 20 do
begin
readln(d);
if d=2 then inc(a) else
if d=3 then inc(b) else
if d=4 then inc(c);
end;
write(' dvoek - ', a, 'troek - ', b, 'chetverok - ', c);
readln;
end.
Ответ:
34
Объяснение:
Нужно найти наибольшее число, меньшее 38 и делящееся на 17 (т.к. оба условия в скобках не должны выполняться). Это число 34.
if (условие) then
begin
end; //условный оператор
_____________________
for i:=a to b do
begin
end; //Цикл с параметром
_____________________
while (условие) do
begin
end; //цикл с предусловием
_____________________
repeat
until (условие) //цикл с постусловием
#include <iostream>using namespace std;
//Функция возвращает минимальное возможное число,//Состоящее из цифр числа aint min(int a) { //Массив для подсчета цифр в числе int *k = new int[10]; for (int i = 0; i < 10; i++) k[i] = 0;
//Считаем, сколько раз повторяется каждая цифра в числе for (; a; a /= 10) { int t = a \% 10; //Если цифра не 0 if (t) k[t]++; }
//Переменная для результата int rez = 0; //Множиель разряда int multiplier = 10;
//Идем по массиву в обратном порядке for (int i = 9; i > 0; i--) //Если данная цифра есть в массиве (числе) for (; k[i]; k[i]--) { //Дописываем цифру в результат rez += i * multiplier * 0.1; //Увеличиваем множитель, для перехода к следующему разряду multiplier *= 10; } //Удаление массива delete[] k; return rez;}
void main(){ //Входные данные int n; printf("\n << n = "); scanf("\%d",&n);
//Вывод результата printf("\n >> min = \%d", min(n));
system("pause>>void");}