Перевести с Паскаля на Си - C (СИ) (72249)
Формулировка задачи:
uses
crt;
type
MyArray = array [1..20] of integer;
const
sizeMax = 20;
procedure putZero(var a : MyArray; const size : integer);
var
i : integer;
begin
for i := 1 to size do
if (a[i] mod 2 = 0) then
a[i] := 0;
end;
procedure putOne(var a : MyArray; const size : integer);
var
i : integer;
begin
for i := 2 to size - 1 do
if ((a[i - 1] mod 2 = 0) and (a[i + 1] mod 2 = 0)) then
a[i] := 1;
end;Решение задачи: «Перевести с Паскаля на Си»
textual
Листинг программы
#include <stdio.h>
void printArray(int a[], int size) {
while (0 < size--) {
printf("%d ", *a++);
}
printf("\n");
}
void putZero(int a[], int size) {
int i;
for (i = 0; i < size; ++i) {
if (a[i] % 2 == 0) {
a[i] = 0;
}
}
}
void putOne(int a[], int size) {
int i;
for (i = 1; i < size - 1; ++i) {
if ((a[i - 1] % 2 == 0) && (a[i + 1] % 2 == 0)) {
a[i] = 1;
}
}
}
int main() {
int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int b[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
putZero(a, 10);
putOne(b, 10);
printArray(a, 10);
printArray(b, 10);
return 0;
}
Объяснение кода листинга программы
- В функции
printArrayиспользуется циклwhileдля прохода по массиву и вывода его элементов на экран. - В функции
putZeroиспользуется циклforдля прохода по массиву и проверки каждого элемента на четность. Если элемент четный, он заменяется на 0. - В функции
putOneиспользуется циклforдля прохода по массиву и проверки соседних элементов на четность. Если оба элемента четные, текущий элемент заменяется на 1. - В функции
mainсоздаются два массиваaиbс десятью элементами от 0 до 9. - Функция
putZeroприменяется к массивуa, а функцияputOneк массивуb. - Функция
printArrayприменяется к массивамaиbдля вывода их элементов на экран. - Программа возвращает 0, завершая свою работу.