求助 代码无输出 注释版 玄关
查看原帖
求助 代码无输出 注释版 玄关
1275539
ACcept_prince楼主2024/7/22 22:37

有没有大佬帮忙看看 qwqqwq,如果能在源代码上找到错误更好,悬关。

#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;
}
2024/7/22 22:37
加载中...