为什么会出现未匹配if的else语句
#include<iostream>
using namespace std;
int main()
{int x,a,b,c,d,e,f;
cin>>x,a,b,c,d,e,f;
if(x/100000>=1) { cout<<"无解";}
else {if (x/10000>=1)
a=x/10000;
b=(x-a*10000)/1000; c=(x-a*10000-b*1000)/100;
d=( x-a*10000-b*1000-c*100)/10;
e= x-a*10000-b*1000-c*100-d*10;
f=e*10000+d*1000+c*100+b*10+a;
{cout<<"五位"<<a<<b<<c<<d<<e<<f<<;}
else { if (x/1000>=1) a=x/1000;
b=(x-a*1000)/100;
c=(x-a*1000-b*100)/10;
d= x-a*1000-b*100-c*10;
f=d*1000+c*100+b*10+a;
{cout<<"四位"<<a<<b<<c<<d<<f;}
else { if(x/100>=1) a=x/100;
b=(x-a*100)/10;
c=x-a*100-b*10;
f=c*100+b*10+a;
{ cout<<"三位"<<a<<b<<c<<f;}
else {if(x/10>=1) a=x/10;
b=x-a*10;
f=b*10+a;
{cout<<"两位"<<a<<b<<f;}
else { a=x ;
f=a;
{cout<<"一位"<<a<<f;}]}}}}}
好
[解决办法]
因为没有编码规范
[解决办法]
从第7行开始:
{if (x/10000>=1)
a=x/10000;//这条if语句到这里就结束了,所以下方那个else才会报错
b=(x-a*10000)/1000; c=(x-a*10000-b*1000)/100;
d=( x-a*10000-b*1000-c*100)/10;
e= x-a*10000-b*1000-c*100-d*10;
f=e*10000+d*1000+c*100+b*10+a;
{cout<<"五位"<<a<<b<<c<<d<<e<<f<<;}
else { if (x/1000>=1) a=x/1000;
[解决办法]
{cout<<"五位"<<a<<b<<c<<d<<e<<f<<;}//这里也有问题
还是建议你使用缩进的风格,这样程序的结构会清楚很多
[解决办法]
if()
{
...
}
elseif()
{
...
}
else
{
...
}
#include<iostream>
using namespace std;
int main()
{
int x,a,b,c,d,e,f;
cin>>x;//,a,b,c,d,e,f;
if(x/100000>=1)
{
cout<<"无解";
}
else
{
if(x/10000>=1)
{
a=x/10000;
b=(x-a*10000)/1000;
c=(x-a*10000-b*1000)/100;
d=( x-a*10000-b*1000-c*100)/10;
e= x-a*10000-b*1000-c*100-d*10;
f=e*10000+d*1000+c*100+b*10+a;
cout<<"五位"<<a<<b<<c<<d<<e<<f;
}
else
{
if (x/1000>=1)
{
a=x/1000;
b=(x-a*1000)/100;
c=(x-a*1000-b*100)/10;
d= x-a*1000-b*100-c*10;
f=d*1000+c*100+b*10+a;
cout<<"四位"<<a<<b<<c<<d<<f;
}
else
{
if(x/100>=1)
{
a=x/100;
b=(x-a*100)/10;
c=x-a*100-b*10;
f=c*100+b*10+a;
cout<<"三位"<<a<<b<<c<<f;
}
else
{
if(x/10>=1)
{
a=x/10;
b=x-a*10;
f=b*10+a;
cout<<"两位"<<a<<b<<f;
}
else
{
a=x ;
f=a;
cout<<"一位"<<a<<f;
}
}
}
}
}
}