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