UVA - 489 Hangman Judge :模拟···WA了N次
2016-06-25 20:00
295 查看
书中代码
先写框架,再写细节。
先写主程序,再实现函数本身。
我还没习惯这种写法···
一下就想到了哪里WA了···
没考虑这样一种情况:cheeseabcdefgij 输出应该是 You win.····
果然 做题太少···
#include <map>
#include<cstdlib>
#include <cstdio>
#include <string>
#include <vector>
#include <cstring>
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
#define LOCAL
int main()
{
#ifdef LOCAL
//freopen("in1.txt","r",stdin);
ifstream cin("in1.txt");
#endif
string S1,S2;
int i,n;
map<char,int>MAP;
map<char,int>::iterator it;
while(cin>>n&&n!=-1){
cout<<"Round "<<n<<endl;
MAP.clear();
int lose=0; int f=0; int left;
cin>>S1>>S2;
for(i=0; i<S1.length(); i++){
MAP[S1[i]]=1;
}
left=MAP.size();// 还剩多少个字符
for(i=0; i<S2.length(); i++){
if(MAP.find(S2[i])==MAP.end()||MAP[S2[i]]==0)
lose++;
else {
MAP[S2[i]]--;
left--;
}
if(!left) {f=1;break;}
if(lose>6){f=-1;break;}
}
if(f==-1) cout<<"You lose."<<endl;
else if(f==1) cout<<"You win."<<endl;
else cout<<"You chickened out."<<endl;
}//while
return 0;
}
先写框架,再写细节。
先写主程序,再实现函数本身。
我还没习惯这种写法···
#define LOCAL #include <set> #include <map> #include <cstdlib> #include <cstdio> #include <string> #include <vector> #include <cstring> #include <fstream> #include <iostream> #include <algorithm> using namespace std; string S1,S2; int lose,win; int chance,L; void guess(char c) { int bad=1; for(int j=0; j<S1.length(); j++){ if(c==S1[j]){ L--; S1[j]=' '; bad=0; } } if(bad) --chance; if(!chance) lose=1; if(!L) win=1; } int main() { #ifdef LOCAL //freopen("in1.txt","r",stdin); ifstream cin("in1.txt"); #endif int Round; while(cin>>Round && Round!=-1){ cout<<"Round "<<Round<<endl; lose = win =0; chance = 7; cin>>S1>>S2; L=S1.length(); for(int i=0; i<S2.length(); i++){ guess(S2[i]); if(win || lose) break; } if(lose) cout<<"You lose."<<endl; else if(win) cout<<"You win."<<endl; else cout<<"You chickened out."<<endl; }//while return 0; }第二天调试
一下就想到了哪里WA了···
没考虑这样一种情况:cheeseabcdefgij 输出应该是 You win.····
果然 做题太少···
#include <map>
#include<cstdlib>
#include <cstdio>
#include <string>
#include <vector>
#include <cstring>
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
#define LOCAL
int main()
{
#ifdef LOCAL
//freopen("in1.txt","r",stdin);
ifstream cin("in1.txt");
#endif
string S1,S2;
int i,n;
map<char,int>MAP;
map<char,int>::iterator it;
while(cin>>n&&n!=-1){
cout<<"Round "<<n<<endl;
MAP.clear();
int lose=0; int f=0; int left;
cin>>S1>>S2;
for(i=0; i<S1.length(); i++){
MAP[S1[i]]=1;
}
left=MAP.size();// 还剩多少个字符
for(i=0; i<S2.length(); i++){
if(MAP.find(S2[i])==MAP.end()||MAP[S2[i]]==0)
lose++;
else {
MAP[S2[i]]--;
left--;
}
if(!left) {f=1;break;}
if(lose>6){f=-1;break;}
}
if(f==-1) cout<<"You lose."<<endl;
else if(f==1) cout<<"You win."<<endl;
else cout<<"You chickened out."<<endl;
}//while
return 0;
}
相关文章推荐
- C#从文本文件中获取二维数组
- IT-I came here
- Instant Run requires 'Tools' | Android | Enable ADB integration' to be enabled
- 代理模式和面向切面编程
- JavaScript检测之basevalidate.js
- C语言标准定义的32个关键字
- ssh整合出现的一些问题总结(spring4+struts2+hibernate4)
- struts2的文件上传和下载
- Solr的安装及配置
- 安卓App热补丁动态修复技术介绍
- JS制作一个跳转提示页面
- spark mllib的优缺点分析
- StudyJams-第08课_多语言支持
- 一道网传上海幼儿园升小学的数学题
- /etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 的区别(转)
- webservice基本使用方法
- 代码静态解析PMD
- app后端设计
- win10 U盘安装 ubuntu16.04 双系统
- Android Handler 详解