首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

生手做题,求给个框架

2013-09-09 
新手做题,求给个框架实验任务在多次四级考试不通过后,Winder痛定思痛决定开始背单词。Winder准备了一本笔记

新手做题,求给个框架
实验任务
在多次四级考试不通过后,Winder痛定思痛决定开始背单词。Winder准备了一本笔记
本用来记录背过的单词。有时,Winder会想知道自己已经背了多少个不同的单词,但是这
是一件很麻烦的事,因为Winder的笔记本里有记录重复的单词。Winder很懒,所以他就让
你来帮他数了。
数据输入
输入第一行为一个正整数 N ( N < =10000)。
接下来 N 行,每行开头是一个数字 1或者 2。
如果是 1,后面会有一个单词,代表 Winder 在笔记本上记录下这个单词。每个单词仅
由小写的英文字母组成,且长度不超过 8。
如果是 2,则代表 Winder 想知道现在他已经背了几个不同的单词。
数据输出
对于每个询问,输出一行一个整数,表示 Winder已经背的不同的单词个数。
输入示例
10
1 winder
2
1 hello
1 what
1 holy
1 hello
2
1 acm
1 winder
2


输出示例
1
4
5 数据
[解决办法]
开始的10,表示有10次输入,所以用个for循环
每次先读取1个整数,如果是1,再读取1个字符串,并把这个字符串(用string吧,容易点)丢进set
如果输入2,把set.size()丢进1个vector

10次输入结束,依次输出vector的数字,每个1行。
[解决办法]
其实更简单的方法是,直接用set拒绝一切相同的元素。


#include <iostream>
#include <string>
#include <set>
using namespace std;
int main ()
{
set<string> v;
int n;
cout<<"输入一个正整数 n ( n < =10000)"<<endl;
cin>>n;
for(int j=0;j<n;j++)
{
int a;
cout<<"请输入1或2(1表示记录单词,2表示查询记录单词个数)"<<endl;
cin>>a;
if(a==1)
{
string word;
cout<<"请输入单词(单词长度不超过8)"<<endl;
cin>>word;
if(word.size()>0&&word.size()<9)
{
v.insert(word);
}
else
cout<<"输入单词长度超过8"<<endl;
}
else if(a==2)
{
cout<<v.size()<<endl;
}
else
cout<<"输入有误"<<endl;
}
}

热点排行
Bad Request.