cjqaichina 2022-04-09 19:21 采纳率: 0%
浏览 24

试了好多次,请看看哪里出错了

请帮忙看看哪里出错了

 #include<stdio.h>
#include<stdlib.h>
typedef struct SqStack
{
    char* base; 
    char* top;  
}SqStack; 
void InitStack(SqStack* S)
{ 
    (*S).base = (char*)malloc(300 * sizeof(char));
    (*S).top = (*S).base;
}
void Push(SqStack* S, char e)
{
    *((*S).top)++ = e;
}
int Pop(SqStack* S)
{
    char e;
    e = *--(*S).top;
    return e;
}
int main() {
    char A[26], B[26];
    char s;
    int  b,l=0,k=0;
    SqStack C;
    InitStack(&C);
    for (int u = 0; u < 26; u++) {
        scanf("%c", &s);
        if (s =='\n') break; 
        A[u] = s;
    }
    s = 'a';
    for (int i = 0; i < 26; i++) {
        scanf("%c", &s);
        if (s == '\n') {
            b = i ; 
            break;
        }
        B[i] = s;
    }
    int E = 0;
    for (int j = 0; j < b - 1; j++)
        for (int i = 0; i < b - 1; i++) {
            if (A[i] == B[j] && A[i + 1] == B[j + 1]) E = 1;
        }
    if (E) printf("Are you kidding me?");
    else {
        while (l != b) {if(k==b) k=0;
            if (A[k] == B[l]) { A[k%b] = '0'; printf("1->2\n"); l++; k++; }
            else if (A[k] != '0') { Push(&C, A[k]); A[k] = '0'; printf("1->3\n");  k++; }
            if (Pop(&C) == B[l]) { printf("3->2\n"); l++; }
        }
    }
        return 0;
}



![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/973261305946188.png "#left")



  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2022-04-09 20:01
    关注

    前两个警告是建议你用scanf_s替换scanf,改为scanf_s("%c",&s,1);
    第三个警告是提醒你b变量没有初始化,可能会出问题。建议在定义b时初始化为b=0;

    评论

报告相同问题?

问题事件

  • 创建了问题 4月9日

悬赏问题

  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 用大厂网站防红自己网站
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询
  • ¥20 我的是道格手机,重置后屏幕右上角出现红色字的未写入tee key 和未写入google key请问怎么去掉啊
  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?