你的分享就是我们的动力 ---﹥

2013编程之美的题目:传话游戏

时间:2013-06-18 14:39来源:www.chengxuyuans.com 点击:

代码简介

之前想参加这个比赛的,但是能力有限,精力有限,今天心血来潮把它做了,做到现在快两点了。。。呵呵。。。代码比较粗糙,也没有把指针用上,因为我对指针方面的研究很浅,有兴趣的请帮我优化一下!非常感谢!

代码片段

#include<iostream>
#include<string>
using namespace std;

int main()
{
	string processgame(int M,string words[][2],string sentance);		//声明进行游戏的子函数 
	 
	int T;			//定义测试组数
	cout<<"输入测试组数:"; 
	cin>>T;			//输入组数 
	string testsentance;
	string returnsentance[T];
	for(int i=0;i<T;i++)
	{
		int N,M;
		cout<<"输入游戏者数量和单词转换量:"; 
		cin>>N>>M;		//输入第i组的游戏者数量和单词转换数量 
		string testwords[M][2];	//定义二维数组存放需要转换的单词
		for(int j=0;j<M;j++)
		{
			cout<<"输入第"<<j+1<<"组单词:";
			cin>>testwords[j][0]>>testwords[j][1];	//输入每组单词 
		}
		cout<<"输入Alice的话:"; 
		cin.ignore();
		getline(cin,testsentance);			//输入Alice的话 
		returnsentance[i]=processgame(M,testwords,testsentance);
	}
	
	cout<<"最终Bob的话:"<<endl;
	for(int i=0;i<T;i++)
	{
		 cout<<"Case #"<<i+1<<":"<<returnsentance[i]<<endl;
	}
	
	return 0; 
}

string processgame(int M,string words[][2],string sentance)
{ 
	for(int i=0;i<M;i++)
	{
		int num=sentance.find(words[i][0]);
		if(num!=-1)	sentance.replace(num,words[i][0].length(),words[i][1]);
	}
	return sentance;
}

代码片段

#include<iostream>
#include<string>
using namespace std;

int main()
{
	string processgame(int M,string words[][2],string sentance);		//声明进行游戏的子函数 
	 
	int T;			//定义测试组数
	cout<<"输入测试组数:"; 
	cin>>T;			//输入组数 
	string testsentance;
	string returnsentance[T];
	for(int i=0;i<T;i++)
	{
		int N,M;
		cout<<"输入游戏者数量和单词转换量:"; 
		cin>>N>>M;		//输入第i组的游戏者数量和单词转换数量 
		string testwords[M][2];	//定义二维数组存放需要转换的单词
		for(int j=0;j<M;j++)
		{
			cout<<"输入第"<<j+1<<"组单词:";
			cin>>testwords[j][0]>>testwords[j][1];	//输入每组单词 
		}
		cout<<"输入Alice的话:"; 
		cin.ignore();
		getline(cin,testsentance);			//输入Alice的话 
		returnsentance[i]=processgame(M,testwords,testsentance);
	}
	
	cout<<"最终Bob的话:"<<endl;
	for(int i=0;i<T;i++)
	{
		 cout<<"Case #"<<i+1<<":"<<returnsentance[i]<<endl;
	}
	
	return 0; 
}

string processgame(int M,string words[][2],string sentance)
{ 
	for(int i=0;i<M;i++)
	{
		int num=sentance.find(words[i][0]);
		if(num!=-1)	sentance.replace(num,words[i][0].length(),words[i][1]);
	}
	return sentance;
}

转载注明地址:http://www.chengxuyuans.com/code/C++/64959.html