Найти те числа отрезка, которые при делении на данное число 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();
}

Объяснение кода листинга программы

В этом коде:

  1. Настраивается ввод-вывод: подключаются необходимые библиотеки, устанавливается локальная настройка для вывода русского текста, и выводится приветствие с просьбой ввести два числа.
  2. Осуществляется проверка введенных чисел: проверяется, что первое число больше нуля, и что второе число не меньше первого. Если это не так, выводится сообщение об ошибке и программа переходит к следующему этапу.
  3. Запрашивается третье число: выводится просьба ввести число, которое будет использоваться как делитель.
  4. Функция Chisla и поиск чисел, дающих в остатке 4: функция Chisla принимает три параметра: делимое число, делитель и указатель на переменную, в которую будет записано 1, если при делении делимого на делитель получается остаток 4, и 0 в противном случае. В цикле от a до b вызывается функция Chisla, и если результат равен 1, то число выводится на экран.
  5. Выводится результат: если после прохода по всем числам от a до b не было найдено ни одного числа, дающего в остатке 4, выводится сообщение Г’Г*ГЄГЁГµ Г·ГЁГ±ГҐГ« Г*ГҐГІ. Если было найдено хотя бы одно число, то после вывода всех найденных чисел выводится сообщение Г—ГЁГ±Г«Г* Г± îñòГ*òêîì 4 ïðè äåëåГ*ГЁГЁ Г*Г* ÷èñëî %d:, где %d - это найденное число.
  6. Осуществляется завершение работы программы: программа ожидает нажатия клавиши, чтобы пользователь мог увидеть результат.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы