33,321
社区成员




#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int num[100];
int top;
}Stack;
Stack *s;
void *initial(Stack *s);
void push(Stack *s, int n);
int pop(Stack *s);
int main(void)
{
int i = 0, j, flag = 1, tmp, n, num[100];
initial(s);
printf("Please input stack num:");
while(flag)
{
scanf("%d", &n);
if(n != -1)
{
num[i] = n;
push(s, n);
i++;
}
else
{
flag = 0;
}
}
num[i] = '\0';
for(j = 0 ; j <= s->top ; j++)
{
tmp = pop(s);
if(num[j] = tmp)
{
flag = 1;
}
else
{
flag = 0;
}
}
if(1 == flag)
{
printf("是回文");
}
else
{
printf("不是回文");
}
return 0;
}
void *initial(Stack *s)
{
s->top = -1;
return(NULL);
}
void push(Stack *s, int n)
{
s->top++;
s->num[s->top] = n;
}
int pop(Stack *s)
{
int tmp = 0;
s->num[s->top] = tmp;
s->top--;
return(tmp);
}
#include <stdio.h>
#include <stdlib.h>
#include<malloc.h>
typedef struct stack
{
int num[100];
int top;
}Stack;
Stack *s;
Stack *initial(Stack *s);
void push(Stack *s, int n);
int pop(Stack *s);
int main(void)
{
int i = 0, j, flag = 1, tmp, n, num[100];
s=initial(s);
printf("Please input stack num:");
while(flag)
{
scanf("%d", &n);
if(n != -1)
{
num[i] = n;
push(s, n);
i++;
}
else
{
flag = 0;
}
}
//num[i] = '\0';
for(j = 0 ; j < s->top ; j++)//here
{
tmp = pop(s);
if(num[j] == tmp)//here
{
flag = 1;
}
else
{
flag = 0;
}
}
if(1 == flag)
{
printf("是回文");
}
else
{
printf("不是回文");
}
return 0;
}
Stack *initial(Stack *s)
{
s=( struct stack*)malloc(sizeof (struct stack));//初始化
s->top = -1;
return s;//返回s
}
void push(Stack *s, int n)
{
s->top++;
s->num[s->top] = n;
}
int pop(Stack *s)
{
int tmp ;//here
//s->num[s->top] = tmp;反了
tmp=s->num[s->top];
s->top--;
return(tmp);
}
int pop(Stack *s)//这个函数改了
{
int tmp = s->num[s->top];
s->num[s->top--] = 0;
return(tmp);
}
int main()
{
int i = 0, j, tmp, n = 0, num[100];
Stack ss; // 改了
s = &ss;
initial(s);
while(true) //没错 也改了 你可以不改
{
printf("Please input stack num end with -1:");
scanf("%d", &n);
if(n == -1)
break;
num[i] = n;
push(s, n);
i++;
}
num[i] = 0;//写不写都行
for(j = 0 ; j <= s->top ; j++)
{
tmp = pop(s);
if(num[j] != tmp) //没错 也改了 你可以不改
{
printf("不是回文\n");
return 0;
}
}
printf("是回文\n");
return 0;
}