有没有大佬帮忙看看 qwq,如果能在源代码上找到错误更好,悬关。
#include <bits/stdc++.h>
using namespace std;
int t,n,m,x,y,num,cnt,sum[1005][5];
bool flag;
string qwq;
string title[1005],s[15][105][105],a[1005],b,c,d,cd;
int main()
{
cin>>t;
for(int l=1;l<=t;l++)
{
cin>>title[l];//输入这是第几个表格的名称
cin>>n>>m;
sum[l][1]=n;
sum[l][2]=m;//记录行和列
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>s[l][i][j];//输入表格
}
}
}
cin>>n;
while(n--)
{
cin>>qwq>>a[1]>>qwq>>b>>qwq>>cd;//输入格式
num=0;
cnt=1;
for(int i=0;i<a[1].length();i++)//遍历a
{
if(a[1][i]==',')//如果是逗号
{
i++;//增加一位
cnt++;//a的数量加一
num=0;//初始化
}
a[cnt][num]=a[1][i];//第cnt个a的第num位等于a[1][i]
}
num=0;
for(int i=0;i<cd.length();i++)//遍历cd
{
if(cd[i]=='=')//如果是等于
{
num=0;//初始化
i++;//增加一位
flag=1;//标记
}
if(!flag)//如果没到等于号,存到c里
{
c[num]=cd[i];
}
else//如果经过了等于号,存到d里
{
d[num]=cd[i];
}
}
for(int i=1;i<=t;i++)//遍历表格的题目
{
if(title[i]==b)
{
x=i;//将第几个表格存到x里
break;
}
}
for(int i=1;;i++)//遍历表头
{
if(s[x][1][i]==c)
{
y=i;//将第几个表头存到y里
break;
}
}
for(int i=1;i<=sum[x][1];i++)//遍历行
{
if(s[x][i][y]==d)//如果第x表的第y个表头所在的那一列的第i行等于d
{
flag=0;//初始化
for(int j=1;j<=sum[x][2];j++)//遍历列
{
for(int l=2;l<=cnt;l++)//遍历所有的a
{
if(s[x][1][j]==a[l])//如果那一列的表头等于任意一个a
{
cout<<s[x][i][j]<<" ";//输出对应的数据
flag=1;//如果有输出,标记
}
}
}
if(flag)
{
cout<<endl;//如果有输出,换行
}
}
}
}
return 0;
}