代码运行出来是全是回文,不知道哪里错了,代码图片如下,能帮忙看看吗
3条回答 默认 最新
- 技术专家团-小桥流水 2022-10-11 16:32关注
代码修改如下:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #define MAXSIZE 1024 typedef char datatype; typedef struct { datatype* base; datatype* top; }charStack; //初始化栈 int InitStack(charStack* S) { S->base = (char*)malloc(MAXSIZE); if (S->base == NULL) return 1; S->top = NULL; return 0; } //销毁栈 void DestroyStack(charStack* S) { if (S->base) free(S->base); } //入栈 int PushStack(charStack* S, datatype ch) { if (S->top - S->base == MAXSIZE - 1) return 1; else if (S->top == NULL) { S->top = S->base; *(S->top) = ch; } else { S->top++; *(S->top) = ch; } return 0; } //出栈 int PopStack(charStack* S, datatype* ch) { if (S->top == NULL) return 1; else { *ch = *(S->top); if (S->top == S->base) S->top = NULL; else S->top--; return 0; } } typedef struct { datatype* base; datatype* front; datatype* rear; }charQueue; //初始化队列 int InitQueue(charQueue* Q) { Q->base = (char*)malloc(MAXSIZE); if (Q->base == NULL) return 1; Q->front = Q->base; Q->rear = Q->base; return 0; } void DestroyQueue(charQueue* Q) { if (Q->base) free(Q->base); Q->base = 0; } //入队 int InQueue(charQueue* Q, datatype ch) { if (Q->rear - Q->front == MAXSIZE) return 1; else { *(Q->rear) = ch; Q->rear++; return 0; } } //出队 int OutQueue(charQueue* Q, datatype *ch) { if (Q->front >= Q->rear) return 1; else { *ch = *(Q->front); Q->front++; return 0; } } void HuiWen(int n, const datatype* str) { int i; int flag = 1; for (i = 0; i < n; i++) printf("%c",str[i]); charStack S; charQueue Q; InitStack(&S); InitQueue(&Q); for (i = 0; i < n; i++) { PushStack(&S, str[i]); InQueue(&Q, str[i]); } datatype x, y; int r1 = 0, r2 = 0; while (1) { r1 = PopStack(&S, &x); r2 = OutQueue(&Q, &y); if (r1 == 0 && r2 == 0 && x == y) continue; else if (r1 == 1 && r2 == 1) break; else { printf("不是回文\n"); return; } } printf("是回文\n"); } int main() { HuiWen(4, "abba"); HuiWen(5, "abcba"); HuiWen(5, "abcde"); HuiWen(6, "ababba"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示
- ¥15 求三国群英传pl国战时间的修改方法
- ¥15 matlab代码代写,需写出详细代码,代价私
- ¥15 ROS系统搭建请教(跨境电商用途)
- ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。