Запрашивать слова в бесконечном цикле - C (СИ)
Формулировка задачи:
Запрашивать слова у пользователя в бесконечном цикле. Выводить true,если слово являеться полиндромом, и false,если не являеться. Выйти из программы при вводе слова end.
Решение задачи: «Запрашивать слова в бесконечном цикле»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 20
int palindrom(char *ar);
int main()
{
char word[MAX];
puts("Вводите слова для проверки. Для завершения введите "end"");
gets(word);
while(strcmp(word,"end")!=0)
{
printf("%d \n",palindrom(word));
gets(word);
}
puts("Проверка завершена");
return 0;
}
int palindrom(char *ar)
{
int i=0;
for(i=0;i<strlen(ar)/2;i++)
{
if(ar[i]!=ar[strlen(ar)-i-1])
return 0;
}
return 1;
}
Объяснение кода листинга программы
В этом коде:
- Подключаются необходимые библиотеки (stdio.h, stdlib.h, string.h).
- Определяется функция palindrom, которая проверяет, является ли строка палиндромом.
- В функции main создается пустая строка word типа char, которая будет использоваться для получения слов от пользователя.
- Выводится сообщение с просьбой ввести слова для проверки и указывается, что для завершения ввода следует ввести слово
end. - В цикле while, который продолжается до тех пор, пока пользователь не введет
end, происходит следующее:- Выводится текущий статус проверки (1 - слово является палиндромом, 0 - слово не является палиндромом).
- Происходит считывание нового слова от пользователя.
- После завершения цикла выводится сообщение о завершении проверки.
- Функция palindrom принимает строку ar типа char и возвращает 1, если строка является палиндромом, и 0 в противном случае.
- Внутри функции palindrom создается переменная i типа int, которая используется для подсчета символов в строке.
- В цикле for происходит сравнение символов строки ar с конца к началу. Если какой-либо символ не совпадает, функция возвращает 0.
- Если все символы совпадают, функция возвращает 1.