这段C++代码为何无法执行?它说“jump to case label”

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:20:26
main()
{
cout<<"select the mode you want:\n 1solubility rules 2ions 3activity series 4groups";
int mode;
cin>>mode;
switch(mode)
{
case 1:
string ask[]={"Li+","Na+","K+","Rb+","Cs+","NH4(+)","NO3(-)","ClO3(-)","ClO4(-)","C2H3O2-","Cl-","Br-","I-","F-","SO4(2-)","O(2-)","OH(-)","CO3(2-)","PO4(3-)","S(2-)","SO3(2-)","C2O4(2-)","CrO4(2-)"};
string asw[]={"al","al","al","al","al","al","al","al","al","al","AgPbHg","AgPbHg","AgPbHg","CaBaSrPbMg","CaBaSrPb","exc:(G1)NH4(+)CaBaSr","e

楼主的程序代码段是在每个case分支下,都定义了两个变量ask和asw。应该将这些定义放在独立的语句体内。比如:
default :
{
string ask[999];
string asw[999];
}
break;