Главная /
Программирование на языке C в Microsoft Visual Studio 2010 /
Приведенная программа должна определять, является ли заданная строка палиндромом (палиндром - это слово, которое читается одинаково слева направо и справа налево). В программе выполняется просмотр строки одновременно слева направо и справа налево и сравне
Приведенная программа должна определять, является ли заданная строка палиндромом (палиндром - это слово, которое читается одинаково слева направо и справа налево). В программе выполняется просмотр строки одновременно слева направо и справа налево и сравнение соответствующих символов. Если в какой-то момент символы не совпадают, делается вывод о том, что строка не является палиндромом, если же удается достичь середины строки и при этом все соответствующие символы совпали, то строка является палиндромом:
char s[100];
int pal(char s[100]);
int main()
{
printf("\nВведите строку: ");
gets(s);
if (pal(s)) printf("Строка является палиндромом");
else printf("Строка не является палиндромом");
return 0;
}
int pal(char s[100])
{
int l; char s1[100];
if (strlen(s)<1) return 1;
else {
l=s[0]==s[strlen(s)-1];
strncpy(s1, s+1, strlen(s)-2);
s1[strlen(s)-2]='\0';
return l&&pal(s1);
}
}
Какое граничное условие имеет реализованная в программе рекурсия?
вопрос
Правильный ответ:
строка пустая
строка состоит из одного символа
граничное условие отсутствует
Сложность вопроса
89
Сложность курса: Программирование на языке C в Microsoft Visual Studio 2010
62
Оценить вопрос
Комментарии:
Аноним
Это очень элементарный решебник intuit.
24 авг 2020
Аноним
Если бы не данные ответы - я бы не решил c этими тестами intuit.
26 окт 2018
Аноним
Зачёт в студне отлично. Мчусь отмечать отмечать халяву с тестами интуит
25 сен 2018
Другие ответы на вопросы из темы программирование интуит.
- # Необходимо написать функцию sum, которая будет вычислять сумму всех элементов массива. В данную функцию должно передаваться два параметра - массив и размер массива. В какой программе функция sum объявлена неверно?
- # В приведенной программе используются указатели на функции, которые выполняют сортировку целочисленного массива "методом пузырька": void PuzSortInc (int*, int ); void PuzSortDec (int*, int); int main (void) { int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7}; int i, n, alg; <Объявление указателя pFun на функции> n = sizeof(A)/sizeof(A[0]); printf("Исходный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); printf("\nВыберите алгоритм сортировки (1 - \"методом пузырька\" по возрастанию,\ 2 - \"методом пузырька\" по убыванию: "); scanf("%d", &alg); switch (alg) { case 1: (*pFun[0])(A, n); break; case 2: (*pFun[1])(A, n); break; default: printf("ERROR! Такого алгоритма не определено!"); } printf("\nSorted array: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); return 0; } void PuzSortInc (int* arr, int size) { int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] > arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } } } void PuzSortDec (int* arr, int size) { int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] < arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } } } Функция PuzSortInc() выполняет сортировку по возрастанию, функция PuzSortDec() - по убыванию. Каким образом должен быть объявлен указатель на функции для его использования в приведенной программе?
- # Частным случаем какого типа данных являются объединения (union)?
- # Программа запускается с одним аргументом, задающим имя и фамилию. В каком случае в файл будет выведено только имя?
- # Какая программа реализует сортировку массива целых чисел по возрастанию методом "пузырька" (методом прямого обмена)?