Как я могу заставить эту палиндромную программу на «С» повторить ее пять раз? - PullRequest
0 голосов
/ 09 апреля 2019

Эй, я новичок в этом сообществе, так что, возможно, этот вопрос, возможно, уже задавался раньше.Также, прежде чем мы перейдем к проблеме, создается мой код, чтобы определить, является ли слово палиндромом или нет.так вот в чем проблема, мой код работает нормально, но я хотел бы повторить это определение слова 5 раз, также как цикл в примере.

#include <stdio.h>

int main()
{
  char text[100];
  int beg, mid, end, len = 0;

  gets(text);

  while (text[len] != '\0')
    len++;

  end = len - 1;
  mid = len/2;

  for (beg = 0; beg < mid; beg++)
  {
    if (text[beg] != text[end])
    {
      printf("This is not a palindrome.\n");
      break;
    }
    end--;
  }
  if (beg == mid)
    printf("This word is a Palindrome.\n");

  return 0;
}

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Все, что вам нужно сделать - это иметь переменную, которая начинается в начале массива, и переменную, которая начинается в конце, и проходить по циклу, пока они не станут равными друг другу. Помимо этого действительность слова уже подтверждена.

int main()
{            
    char text[100];
    int start = 0;
    int end = sizeof(text) - 1;
    bool isPalendrome = true;

    while(start <= end)
    {
        var char1 = text[start];
        var char2 = text[end];

        if(char1 == char2)
        {
            start++;
            end--;
        }
        else
        {
            printf("This word is not a palindrome");
            isPalindrome = false;
            break;
        }
    }

    if(isPalindrome) 
    {
        printf("Word is a palindrome");
    }

    return 0;
}
0 голосов
/ 09 апреля 2019

Я бы так и сделал:

#include <stdio.h>

int
checkPalindrome(char * inputString) {
  char *temp = inputString+strlen(inputString)-1;
  while (temp>inputString)
    if (*temp--!=*inputString++)
      return 0;
  return 1;
}


void main()
{
  char text[100];
  int count=0;

  while(count++ != 5)
  {
     printf("Enter word: \n");
     scanf("%s", text);
     if (checkPalindrome(text)
       printf("This word is a Palindrome.\n");
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...