新手请问一下,求解答为什么总是没有匹配if的非法else

新手请教一下,求解答为什么总是没有匹配if的非法else?
#include <iostream>
using namespace std;
int main()
{
char a, b, c,d,e,f;
cin >> a >> b >> c;
{
{
if (a > b&&a > c&&b > c) a = d; b = e; c = f;
else if (a > b&&a > c&&c > b) a = d; c = e; b = f;
else if (b > a&&b > c&&a > c) b = d; a = e; c = f;
else if (b > a&&b > c&&c > a) b = d; c = e; a = f;
else if (c > a&&c > b&&a > b) c = d; a = e; b = f;
else c = d; b = e; a = f;
}
}
cout << f << " " << e << " " << d << endl;
return 0;
}
------解决思路----------------------
得加 {},否则 if 的管辖范围到第一个 ; 就结束了。然后后面的 ; 和下面的 else 配起来就导致了该 else 没有对应的 if