头像
簪花郎
发布于 2021-03-21 21:53
+ 关注

a题

请问这个代码哪里错误了呐?a题
#include <stdio.h>
#include <string.h>
#include<iostream>
using namespace std;
struct note{
    int  c;
} p[300];
int top=0;
int  a[30];char s[500];
int  main()
{
    int n,m,i,j,l,k;
    char c;
    scanf("%d",&n);
    getchar();
    for(i=1;i<=n;i++){
        scanf("%c ",&c);
        if(c=='T')a[i]=1;
        else a[i]=0;
    }
    scanf("%[^\n]",s);//输入字符串,可以有空格那种 
    l=strlen(s);
    for(j=0;j<l;j++){
        if(s[j]==' ')continue;//字符串发的空格跳过 
        if(s[j]>='A'&&s[j]<='Z'){//  入栈 
            k=s[j]-64;
            p[top].c=a[k];
            top++;
        }
        if(s[j]=='+'){//遇见加号就是交集 
            if(p[top-2].c&&p[top-1].c)
            p[top-2].c=1;
            else p[top-2].c=0;
            top=top-2;//  出栈 
        }
        if(s[j]=='*'){
            if(p[top-2].c||p[top-1].c)
            p[top-2].c=1;
            else p[top-2].c=0;
            top=top-2;
        }
        if(s[j]=='-'){
            if(p[top-1].c)
            p[top-1].c=0;
            else p[top-1].c=1;
        }
    }
    if(p[0].c)
    printf("T\n");//cout<<"T"<<endl;
    else      printf("F\n");//cout<<"F"<<endl;
    return 0;
}

全部评论

(1) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐