Перевод кода с Pascal - C (СИ)

Узнай цену своей работы

Формулировка задачи:

как записать это в си?
var
  a, b,c, d1, e1, d2, e2,d3,e3 : integer;
begin
  readln(a, b,c);
  d1 := a div 10;
  e1 := a mod 10;
  d2 := b div 10;
e2 := b mod 10;
d3:=c div 10;
e3 := c mod 10;
 
  if (d1 = d2)or(d2 = d3)or(d1 = e2)or(d3 = e1)or(e1 = d2)or(e1 = d3)or(e1 = e2)or(e3 = e2)or(e1 = e3)
    then writeln('YES')
    else writeln('NO')
end.

Решение задачи: «Перевод кода с Pascal»

textual
Листинг программы
#include <stdio.h>
 
#define QUANTITY 3
#define DIVIDER 10
#define REMAINDER 10
 
int main() {
    int mainArray[QUANTITY];
    int size1 = QUANTITY * 2;
    int array1[size1];
 
    for ( int i = 0; i < QUANTITY; i++ ) {
        scanf("%d", &mainArray[i]);
    }
 
    for ( int i = 0, j = 0; i < size1; i++ ) {
        if ( i < QUANTITY ) {
            array1[i] = mainArray[i] / DIVIDER;
            //printf("d=%d\n", array1[i]); --выводит результат по d1, d2, d3;
        } else {
            array1[i] = mainArray[j] % REMAINDER;
            j += 1;
            //printf("e=%d\n", array1[i]); --выводит результат по e1, e2, e3;
        }
    }
 
    for ( int i = 0; i < size1; i++ ) {
        for ( int j = 0; j < size1; j++ ) {
            if ( array1[i] == array1[j] && i != j ) {
                printf("Yes\n");
                return 0;
            }
        }
    }
    printf("No\n");
 
    return 0;
}

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

  1. Включаемые заголовочные файлы:
    • : для использования функций ввода-вывода
  2. Переменные и их значения:
    • QUANTITY: 3
    • DIVIDER: 10
    • REMAINDER: 10
    • mainArray: массив из QUANTITY элементов, который считывается значениями с помощью scanf
    • size1: размер массива array1, равный QUANTITY * 2
    • array1: массив размером size1, в который записываются результаты операций над значениями из mainArray
  3. Циклы:
    • Первый цикл for с переменной i считывает значения из mainArray и записывает их в array1
    • Второй цикл for с переменными i и j выполняет два различных действия:
      • Если i < QUANTITY, то выполняется деление значения mainArray[i] на DIVIDER и результат записывается в array1[i]
      • Если i >= QUANTITY, то выполняется остаток от деления значения mainArray[j] на REMAINDER и результат записывается в array1[i], после чего j увеличивается на 1
  4. Условие: если в массиве array1 есть повторяющиеся значения, то выводится сообщение Yes, в противном случае выводится сообщение No
  5. Вывод: в цикле for с переменной i выводятся значения из массива array1 для проверки их равенства

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


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

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

9   голосов , оценка 4.333 из 5