Определить, является ли заданное число полиандром - C (СИ)
Формулировка задачи:
Решение задачи: «Определить, является ли заданное число полиандром»
/**
* @param str исходная строка
* @return true если является полиандром, иначе false
*
*/
bool is_poliandr(const char* str)//bool defined in <stdbool.h>
{
size_t len=strlen(str);
size_t i;
for (i=0;i<len/2;i++)
if (str[i]!=str[len-i-1])
return false;
return true;
}
Объяснение кода листинга программы
В данном коде определена функция is_poliandr, которая принимает на вход строку и возвращает булево значение, указывающее, является ли данная строка полиандром или нет. В первых двух строках определяется длина строки с помощью функции strlen, а также инициализируется переменная i, которая будет использоваться в цикле. Далее следует цикл, который выполняется до тех пор, пока индекс i меньше половины длины строки. В каждой итерации выполняется сравнение символа с индексом i и символа с индексом len-i-1. Если символы не равны, то функция возвращает false, иначе продолжается выполнение цикла. Если все символы равны, то это означает, что строка является полиандром, и функция возвращает true. Вот список действий:
- Определение длины строки с помощью функции strlen.
- Инициализация переменной i.
- Цикл выполняется до тех пор, пока индекс i меньше половины длины строки.
- Сравнение символа с индексом i и символа с индексом len-i-1.
- Если символы не равны, то функция возвращает false.
- Если все символы равны, то функция возвращает true.