有人知道有没有遗漏的吗
2026-07-29 13:20:55
发布于:浙江
#include<bits/stdc++.h>
using namespace std;
const int N=4e2;
#define ll long long
string __jianshi[]={"玻纤柳叶箭矢:3级","碳纤维刺骨箭矢:4级","碳纤维穿甲箭矢:5级","碳纤维散射箭矢:5级"};//箭矢
string _6_8[]={"M7","M250","RM277"};//6.8X51mm
string __6_8[]={"6.8×51mm PLY-I:3级","6.8×51mm FMJ:4级","6.8×51mm PLY-II:4级","6.8×51mm Hybrid:5级","6.8×51mm PLY-III:5级","6.8×51mm AP:6级"};//6.8X51mm
string _12_7[]={"ASh-12"};//12.7X55mm
string _300[]={"MCX LT","K437"};//.300
string _5_45[]={"AK-12","AKS-74U","KC17"};//5.45×39mm
string _45[]={"Vector","SMG-45","M1911"};//.45ACP
string __45[]={".45 ACP RIP:0级",".45 ACP CT:0级",".45 ACP HS:1级",".45 ACP JHP:2级",".45 ACP FMJ:3级",".45 ACP AP:4级",".45 ACP SUPER:5级"};//.45ACP
string _9_39[]={"As val","SR3M"} ;//9×39mm
string __9_39[]={"9×39mm SP5:3级","9×39mm PAB-7:3级","9×39mm SP6:4级","9×39mm PAB-9:4级","9×39mm BP:5级"};//9X39mm
string _9_19[]={"G17","G18","93R","QSZ92Z","MP5","UZI","勇士","野牛","QCQ171"};//9×19mm
string __9_19[]={"9×19mm RIP:0级","9×19mm CT:0级","9×19mm PSO:1级","9×19mm Pst:2级","9×19mm AP6.3:3级","9×19mm PBP:4级","9×19mm 7N21:5级"};//9X19mm
string _5_8[]={"**","QJB201","QBZ95-1"};///5.8X42mm
string __5_8[]={"5.8×42mm DBP87:2级","5.8×42mm DVP88:3级","5.8×42mm DBP10:4级","5.8×42mm DBP10+P:4级","5.8×42mm DVC12:5级","5.8×42mm DVC12+P:5级"};//5.8X42mm
string _5_56[]={"M4A1","K416","CAR-15","SG552","AUG","M249"};//5.56mm
string __5_56[]={"5.56×45mm RRLP:1级","5.56×45mm FMJ:2级","5.56×45mm M855:3级","5.56×45mm M855 APC:3级","5.56×45mm M855A1:4级","5.56×45mm M855A1 APC+:4级","5.56×45mm M995:5级"};//5.56mm
string _7_62_51[]={"SCAR-H","G3","M14","SR-25","PSG-1","SR9","R93","M700"};//7.62X51mm
string _7_62_54[]={"PKM","SVD","SV-98","SVCH"};//7.62X54mm
string _7_62_39[]={"AKM","PTR-32","SKS","MK47"};//7.62×39mm
string _12Gauge[]={"M870","725双管","M1014","S12K","FS-12A"};//12mm霰弹
string _5_7[]={"P90","AR57"};//5.7X28mm
string _4_6[]={"MP7","MK4"};//4.6X30mm
int main(){
cout<<"___________________________\n";
cout<<"子弹适配枪械查询▄︻┻┳══━一\n";
cout<<"___________________________\n";
cout<<"请输入查询次数:";
ll nn;cin>>nn;
string k="可用枪械:\n";
string kk="子弹等级:\n";
while(nn--){
cout<<"请输入子弹型号\n如6.8,5.56,.338输入.338,9×19输入9.19,7.62×51mm输入7.62.51,霰弹输入霰弹,箭矢同上: ";
string a;cin>>a;
if(a=="6.8"){
cout<<"6.8×51mm\n";
cout<<kk;
int len1 = sizeof(__6_8) / sizeof(__6_8[0]);
for(int i=0;i<len1;i++){
cout<<__6_8[i]<<"\n";
}cout<<endl;
cout<<k;
int len = sizeof(_6_8) / sizeof(_6_8[0]);
for(int i=0;i<len;i++){
cout<<_6_8[i]<<" ";
}cout<<endl;
}else if(a==".338"){
cout<<".338 Lapua Magnum(.338 Lap Mag)\n"<<k<<"AWM\n";
}else if(a==".357"){
cout<<".357\n左轮\n";
}else if(a==".50"){
cout<<".50\n1. .50BMG(红弹) "<<k<<"M82\n2. .50AE "<<k<<"沙漠之鹰\n";
}else if(a=="5.8"){
cout<<"5.8×42mm\n";
cout<<k;
int len = sizeof(_5_8) / sizeof(_5_8[0]);
for(int i=0;i<len;i++){
cout<<_5_8[i]<<" ";
}
cout<<endl;
}else if(a=="9.39"){
cout<<"9×39mm\n";
cout<<kk;
int len1 = sizeof(__9_39) / sizeof(__9_39[0]);
for(int i=0;i<len1;i++){
cout<<__9_39[i]<<"\n";
}cout<<endl;
cout<<k;
int len = sizeof(_9_39) / sizeof(_9_39[0]);
for(int i=0;i<len;i++){
cout<<_9_39[i]<<" ";
}
cout<<endl;
}else if(a=="9.19"){
cout<<"9×19mm\n";
cout<<kk;
int len1 = sizeof(__9_19) / sizeof(__9_19[0]);
for(int i=0;i<len1;i++){
cout<<__9_19[i]<<"\n";
}cout<<endl;
cout<<k;
int len = sizeof(_9_19) / sizeof(_9_19[0]);
for(int i=0;i<len;i++){
cout<<_9_19[i]<<" ";
}
cout<<endl;
}else if(a==".45"){
cout<<".45 ACP\n";
cout<<k;
int len = sizeof(_45) / sizeof(_45[0]);
for(int i=0;i<len;i++){
cout<<_45[i]<<" ";
}
cout<<endl;
}else if(a=="5.45"){
cout<<"5.45×39mm\n";
cout<<k;
int len = sizeof(_5_45) / sizeof(_5_45[0]);
for(int i=0;i<len;i++){
cout<<_5_45[i]<<" ";
}
cout<<endl;
}else if(a=="5.56"){
cout<<"5.56×45mm\n";
cout<<kk;
int len1 = sizeof(__5_56) / sizeof(__5_56[0]);
for(int i=0;i<len1;i++){
cout<<__5_56[i]<<"\n";
}cout<<endl;
cout<<k;
int len = sizeof(_5_56) / sizeof(_5_56[0]);
for(int i=0;i<len;i++){
cout<<_5_56[i]<<" ";
}
cout<<endl;
}else if(a==".300"){
cout<<".300BLK\n";
cout<<k;
int len = sizeof(_300) / sizeof(_300[0]);
for(int i=0;i<len;i++){
cout<<_300[i]<<" ";
}
cout<<endl;
}else if(a=="7.62.54"){
cout<<"7.62×54mmR\n";
cout<<k;
int len = sizeof(_7_62_54) / sizeof(_7_62_54[0]);
for(int i=0;i<len;i++){
cout<<_7_62_54[i]<<" ";
}
cout<<endl;
}else if(a=="7.62.51"){
cout<<"7.62×51mm\n";
cout<<k;
int len = sizeof(_7_62_51) / sizeof(_7_62_51[0]);
for(int i=0;i<len;i++){
cout<<_7_62_51[i]<<" ";
}
cout<<endl;
}else if(a=="12.7"){
cout<<"12.7×55mm\n";
cout<<k;
int len = sizeof(_12_7) / sizeof(_12_7[0]);
for(int i=0;i<len;i++){
cout<<_12_7[i]<<" ";
}
cout<<endl;
}else if(a=="5.7"){
cout<<"5.7×28mm\n";
cout<<k;
int len = sizeof(_5_7) / sizeof(_5_7[0]);
for(int i=0;i<len;i++){
cout<<_5_7[i]<<" ";
}
cout<<endl;
}else if(a=="7.62.39"){
cout<<"7.62×39mm\n";
cout<<k;
int len = sizeof(_7_62_39) / sizeof(_7_62_39[0]);
for(int i=0;i<len;i++){
cout<<_7_62_39[i]<<" ";
}
cout<<endl;
}else if(a=="4.6"){
cout<<"4.6×30mm\n";
cout<<k;
int len = sizeof(_4_6) / sizeof(_4_6[0]);
for(int i=0;i<len;i++){
cout<<_4_6[i]<<" ";
}
cout<<endl;
}else if(a==".45-70"){
cout<<".45-70 Govt\n";
cout<<k;
cout<<"Marlin杠杆式步枪\n";
}else if(a=="霰弹"){
cout<<"12 Gauge\n";
cout<<k;
int len = sizeof(_12Gauge) / sizeof(_12Gauge[0]);
for(int i=0;i<len;i++){
cout<<_12Gauge[i]<<" ";
}
cout<<"\n";
}else if(a=="箭矢"){
cout<<"箭矢\n"<<kk;
int len1 = sizeof(__jianshi) / sizeof(__jianshi[0]);
for(int i=0;i<len1;i++){
cout<<__jianshi[i]<<"\n";
}cout<<endl;
cout<<k;
cout<<"复合弓\n";
}else{
cout<<"未找到该型号!请重新输入\n";
// nn++;
}
}
cout<<"\n感谢使用!";
return 0;
}
我让豆馅查了,他非说漏了个QBZ191,还说完全贴合三角洲
……
很急,.45ACP 四级弹叫啥?是AP吗
全部评论 4
子弹型号部分还没写好
2026-07-29 来自 浙江
0建议改为:
int nn; cin >> nn; while (nn > 0) { string a; cin >> a; bool found = false; // ... 匹配逻辑,匹配成功时 found = true if (!found) { cout << "未找到该型号!请重新输入\n"; continue; // 不消耗次数,重新输入 } nn--; // 只有成功匹配才减少剩余次数 }2026-07-27 来自 浙江
0为啥我感觉这是一样的
2026-07-27 来自 浙江
1匹配成功减少次数,没成功次数不变
2026-07-27 来自 浙江
1
问题出在输入错误时的重试逻辑:
while(nn--){ // ... if(/* 匹配失败 */){ cout<<"未找到该型号!请重新输入\n"; nn++; } }2026-07-27 来自 浙江
0这个程序存在一个明显的逻辑漏洞,会导致无限循环。
2026-07-27 来自 浙江
0为啥
2026-07-27 来自 浙江
0
2026-07-27 来自 浙江
0回复你了
2026-07-27 来自 浙江
0

























有帮助,赞一个