求助
  • 板块灌水区
  • 楼主hjsxhst2022
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/10/15 17:12
  • 上次更新2023/10/27 07:24:53
查看原帖
求助
745903
hjsxhst2022楼主2022/10/15 17:12

成语接龙代码,but一输入字符就会死循环

#include<bits/stdc++.h>
#include<string.h>
#include<string>
#include<cstring>
#include<unistd.h>
using namespace std;
int yxcs=0;
string hd;
char tzf;
char wzf;
int main(){
system("color 8B");
string cy={"一字千金金枝玉叶叶公好龙龙马精神神采飞扬扬眉吐气气壮山河河汾门下下笔成章章句之徒徒有虚名名落孙山山穷水尽尽人皆知知行合一一柱擎天天高气爽爽然若失失道寡助助人为乐乐极生悲悲喜交集集思广益益国利民民穷财尽尽心竭力力不从心心猿意马马到成功功败垂成成家立业业精于勤勤俭持家家徒四壁壁立千尺尺幅千里里出外进进退两难难以置信信誓旦旦旦夕祸福福至心灵灵机巧变变化无穷穷凶极恶恶贯满盈蝇营狗苟苟且偷生生花妙笔笔走龙蛇山高月小三潭印月蛇口蜂针针锋相对对牛弹琴琴心剑胆胆大如斗胆大包天斗转星移移花接木木人石心心灵手巧巧立名目目瞪口呆呆头呆脑呆若木鸡鸡鸣狗盗鸡飞狗跳盗亦有道道貌岸然优柔寡断斩钉截铁然荻读书书香铜臭臭味相投投其所好好为人师师出无名名震一时时来运转转祸为福转败为胜福地洞天天马行空空穴来风及门之士死不瞑目目不识丁丁一卯二二姓之好好高骛远远近闻名名不副实实获我心心腹之患患得患失里应外合法其遗志志大才疏疏忽职守守株待兔兔死狐悲人人自危危急存亡亡猿祸木木朽不雕雕虫小技技艺高超超然物外外强中干干戈四起起死回生生离死别别具一格格格不入入木三分分秒必争争先恐后后顾之忧忧心如焚焚琴煮鹤鹤立鸡群群龙无首首屈一指指鹿为马马革裹尸尸位素餐餐风露宿露胆披肝肝胆相照照功行赏赏心悦目目不暇接接二连三三缄其口口不择言言而无信信口雌黄黄粱一梦梦寐以求求之不得得寸进尺屈指可数数一数二士饱马腾腾蛟起凤凤鸣朝阳阳关大道道听途说说三道四四面楚歌歌舞升平平心静气气喘如牛牛郎织女女中丈夫夫唱妇随随波逐流流离失所所向披靡靡靡之音音容笑貌貌合神离离群索居居安思危危言耸听听而不闻闻风丧胆胆小如豆豆蔻年华华而不实实事求是是非曲直直言不讳讳莫如深深仇大恨恨之入骨骨瘦形销影影绰绰绰绰有余水到渠成成千上万万事俱备风花雪月月黑风高高枕无忧忧国忧民民不聊生生龙活虎虎虎生风风门水口口若悬河河山之德羽毛未丰丰衣足食食古不化鱼目混珠珠联璧合和盘托出出口成章章台杨柳柳暗花明明辨是非非同小可可想而知知法犯法法外施仁仁至义尽尽善尽美美中不足足智多谋谋财害命命辞遣意意气风发发扬光大大步流星星罗棋布不耻下问问舍求田田夫野老老马识途途穷日暮暮鼓晨钟玉碎珠沉沉默寡言言听计从从容自如如履薄冰冰清玉洁洁身自好好大喜功功德无量量力而行"};//成语库
cout<<"请输入成语"<<endl;
getline(cin,hd);
string::size_type idx=cy.find(hd); //在cy中查找hd.
system("color 8A");
if(idx==string::npos){//检查是否存在
cout<<"不存在"<<endl;
while(!cy.find(hd)==string::npos){
cout<<"请输入成语"<<endl;
getline(cin,hd);
if(cy.find(hd)==string::npos)
cout<<"不存在"<<endl;
}
cout<<"存在"<<endl;
yxcs++;
tzf=hd[0];
wzf=hd[3];
if(yxcs!=1){//判断游戏次数
if(hd[0]==wzf){//检查是否首尾对应
tzf=hd[0];
wzf=hd[3];
}else{
while(hd[0]==wzf){
cout<<"不对应"<<endl;
cout<<"请输入成语"<<endl;
getline(cin,hd);
}
tzf=hd[0];
wzf=hd[3];
}
}else{
tzf=hd[0];
wzf=hd[3];
}
}else{
cout<<"存在"<<endl;
yxcs++;
tzf=hd[0];
wzf=hd[3];
}
if(yxcs!=1){//检查是否首尾对应
if(hd[0]==wzf){
tzf=hd[0];
wzf=hd[3];
}else{
while(hd[0]==wzf){
cout<<"不对应"<<endl;
cout<<"请输入成语"<<endl;
}
tzf=hd[0];
wzf=hd[3];
}
}else{
tzf=hd[0];
wzf=hd[3];
}
system("color 8F");//回答
for(unsigned int i=0;i<=cy.length()-1;i+=4){
if(cy[i]==wzf){
cout<<cy[i]<<cy[i+1]<<cy[i+2]<<cy[i+3];
break;
}
}
system("pause");
return 0;
}

求大佬解答

2022/10/15 17:12
加载中...