Найти те числа отрезка, которые при делении на данное число K, дают в остатке число 4 - C (СИ)
Формулировка задачи:
Переведите пожалуйста код задачи из паскаля в СИ, спасибо.
Условие: Дан натуральный отрезок чисел [A,B]. Найти те числа этого отрезка, которые при делении на данное число K, дают в остатке число 4. Проверку, равен ли остаток четырем при делении данного числа на K, сделать с помощью логической процедуры пользователя.
Работа с отрезкам
uses crt; procedure Chisla(a,k:integer;var f:boolean); begin f:=a mod k=4; end; var a,b,i,k,j:integer; f:boolean; begin repeat writeln('Введите диапазон натуральных чисел'); read(a,b); if (a<1)or(b<=a) then writeln('Диапазон введен неверно, повторите ввод'); until(a>0)and(b>a); write('Введите число для деления k='); readln(k); writeln('Числа с остатком 4 при делении на число ',k); for i:=a to b do begin Chisla(i,k,f); if f then begin j:=1; write(i,' '); end; end; if j<>1 then write('Таких чисел нет'); end.
Решение задачи: «Найти те числа отрезка, которые при делении на данное число K, дают в остатке число 4»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <locale.h> void Chisla(int a, int k, int &f) { f = (a % k == 4) ? 1 : 0; } main() { int a, b, i, k, j, f; setlocale(LC_ALL, "Russian"); do { printf("Ââåäèòå äèГ*ГЇГ*çîГ*\n"); printf("ГЋГІ: "); scanf("%d", &a); printf("Äî: "); scanf("%d", &b); if (a < 1 || b <= a) printf("ÄèГ*ГЇГ*çîГ* ââåäåГ* Г*ГҐГўГҐГ°Г*Г®, ïîâòîðèòå ââîä\n"); } while (a <= 0 || b <= a); printf("Ââåäèòå ÷èñëî äëÿ äåëåГ*ГЁГї k = "); scanf("%d", &k); printf("Г—ГЁГ±Г«Г* Г± îñòГ*òêîì 4 ïðè äåëåГ*ГЁГЁ Г*Г* ÷èñëî %d:\n", k); for (i = a; i <= b; i++) { Chisla(i, k, f); if (f == 1) { j = 1; printf("%d ", i); } } if (j != 1) printf("Г’Г*ГЄГЁГµ Г·ГЁГ±ГҐГ« Г*ГҐГІ\n"); getch(); }
Объяснение кода листинга программы
В этом коде:
- Настраивается ввод-вывод: подключаются необходимые библиотеки, устанавливается локальная настройка для вывода русского текста, и выводится приветствие с просьбой ввести два числа.
- Осуществляется проверка введенных чисел: проверяется, что первое число больше нуля, и что второе число не меньше первого. Если это не так, выводится сообщение об ошибке и программа переходит к следующему этапу.
- Запрашивается третье число: выводится просьба ввести число, которое будет использоваться как делитель.
- Функция Chisla и поиск чисел, дающих в остатке 4: функция Chisla принимает три параметра: делимое число, делитель и указатель на переменную, в которую будет записано 1, если при делении делимого на делитель получается остаток 4, и 0 в противном случае. В цикле от a до b вызывается функция Chisla, и если результат равен 1, то число выводится на экран.
- Выводится результат: если после прохода по всем числам от a до b не было найдено ни одного числа, дающего в остатке 4, выводится сообщение
Г’Г*ГЄГЁГµ Г·ГЁГ±ГҐГ« Г*ГҐГІ
. Если было найдено хотя бы одно число, то после вывода всех найденных чисел выводится сообщениеГ—ГЁГ±Г«Г* Г± îñòГ*òêîì 4 ïðè äåëåГ*ГЁГЁ Г*Г* ÷èñëî %d:
, где %d - это найденное число. - Осуществляется завершение работы программы: программа ожидает нажатия клавиши, чтобы пользователь мог увидеть результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д