проверьте, является ли строка палиндромом или нет - PullRequest
0 голосов
/ 14 апреля 2020
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int checkpalindrome(char* a,int n);
int main()
{
    char *a;
    int i,n;
    printf("Enter the size of the string but should be odd => ");
    scanf("%d",&n);
    a=(char*)calloc(n,sizeof(char));
    for(i=0;i<n;i++)
    {
        if(i==(n-1)/2)
        {  printf("Enter X\n");}
        scanf("%c",&a[i]);
    }
    if(checkpalindrome(a,n)){
      printf("\nstring is palindrome");
    }
    else{ 
      printf("\nstring is not a palindrome");
    }
    return 0;
}
int checkpalindrome(char *a,int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        if(a[i]==a[n-i])
          continue;
        else
          return 0;
    }
    return 1;
}

проверьте этот код, я не получаю правильный вывод здесь, строка должна иметь a и b, и X должен быть в середине строки, и мы должны проверить, является ли строка палиндромом или нет.

1 Ответ

1 голос
/ 14 апреля 2020

Если вы хотите реализовать два стека в одном массиве, вам нужно разделить РАЗМЕР инициализированного массива на 2. Затем вы должны различить guish два стека с этими основными c инициализацией .

int stack[9], SIZE, max1, max2, top1, top2;
SIZE = 10;
max1 = (SIZE/2) - 1; 
max2 = SIZE - 1;
top1 = -1;
top2 = max1;

поэтому, делая это, они полностью разделяются. поэтому у вас должно быть два метода pu sh push1 () и push2 и два метода pop pop1 () и pop2 (), написанные отдельно в соответствии с параметрами стека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...