C++学习的简单问题(四)
2013-04-09 00:32 liuzq2013 阅读(436) 评论(0) 收藏 举报问题描述
突然有一天,你忘记了今天是星期几,中国人凑吉利,所以你找来了八个人,让他们每人说两句话,第一句为今天星期几,另一句为今天不是星期几,并且两句中一句真,一句假。可能第一句是真,也可能第二句是真。最后请你确定今天是星期几,并输出。
输入格式
8行,每行是两个星期几的英文单词,用空格分开,星期几的英文不考虑大小写,即可能是大小写夹杂的单词形式(并非只有首字母大写)。
输出格式
一行英文,表示今天星期几,要求是规范的英文单词,即首字母要大写,之后小写。
#include <iostream> #include <string> using namespace std; string toLower(string a) { int len=a.size(); char b; for(int i=0;i<len;i++) { b=a[i]; if((int)b<97) a[i]=(char)(b+32); } return a; } int main() { string a[7]={"monday","tuesday","wednesday","thursday","friday","saturday","sunday"}; string b[16]; int i,j=0; for(i=0;i<16;i++) cin>>b[i]; i=0; while(i<7&&j<8) { if((toLower(b[j*2]) == a[i])+(toLower(b[j*2 + 1]) != a[i]) != 1) { i++; j=0; } else j++; } string c=a[i]; c[0]=(char)(c[0]-32); cout<<c<<endl; return 0; }
现在看起来有点像字符串匹配的蛮力法。
浙公网安备 33010602011771号