• 欢迎光临~

敲笨钟--来自LH的题 已通过

开发技术 开发技术 2022-10-13 次浏览
敲笨钟--来自LH的题 已通过
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
	int n;
	char a[105];
	char answer[21][105];
	int pt[21];			//读取逗号的位置 
	int cnt[21][105];		//读取空格的位置 
	int tot[21];			//cnt数组的下标 
	int len;			//字符串长度
	int judge[20];			//判断是否输出Skipped 

	memset(judge,0,sizeof(judge));
	memset(cnt,0,sizeof(cnt));
	memset(tot,0,sizeof(tot));
	memset(pt,0,sizeof(pt));
	
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		getchar(); 
		cin.get(a,105);
		len=strlen(a);
		for(int j=0;j<=len-1;j++)
		{
			if(a[j]==',') pt[i]=j;
			if(a[j]==' ') cnt[i][++tot[i]]=j;
		}
		if(a[len-2]=='g'&&a[len-3]=='n'
		&&a[len-4]=='o'&&a[pt[i]-1]=='g'&&
		a[pt[i]-2]=='n'&&a[pt[i]-3]=='o'){
			for(int j=0;j<=cnt[i][tot[i]-2];j++){answer[i][j]=a[j];}
		}
		else judge[i]++;
	}
	
	for(int i=1;i<=n;i++)
	{
		if(!judge[i]){
			for(int j=0;j<=cnt[i][tot[i]-2];j++)
			{
				cout<<answer[i][j];
			}
			cout<<"qiao ben zhong."<<endl;
		}
		else cout<<"Skipped"<<endl;
	}
	
	return 0;
}

要注意的是,结尾处有英文的句号".",所以对len进行计数时需要多减一个1,其次第一次敲的时候看错题了,要押韵,所以还要建立pt数组来记录逗号","的位置,其他便是很正常的模拟,要注意把标记的数组初始值清零。

程序员灯塔
转载请注明原文链接:敲笨钟--来自LH的题 已通过
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com