有A、B、C、D和E共5所学校。在一次检查评比中,已知E校肯定不是第2名或第3名,他们互相进行推测,A校有人说,E校一定是第1名;B校有人说,我校可能是第2名;C校有人说,A校最差;D校有人说,C校不是最好的;E校有人说,D校会获得第1名。结果只有第1名和第2名的学校的人猜对了。编写一个程序求出这5所学校的名次。
编程要求
为了防止不同的学校取相同的名次,设立了一个数组x[],x[i]为0(假)表示已有某校取了第i名。
#include <cstdio>
int a[6];
int main()
{
for (int a=1;a<=5;a++)
for (int b=1;b<=5;b++)
if (b!=a)
for (int c=1;c<=5;c++)
if (c!=a && c!=b)
for (int d=1;d<=5;d++)
if (d!=a && d!=b && d!=c)
for (int e=1;e<=5;e++)
if (e!=a && e!=b && e!=c && e!=d)
{
if (a==1 || a==2)
if (e!=1) continue;
if (b==1 || b==2)
if (b!=2) continue;
if (c==1 || c==2)
if (a!=5) continue;
if (d==1 || d==2)
if (c==1) continue;
if (e==1 || e==2)
if (d!=1) continue;
printf("A是第%d名 B是第%d名 C是第%d名 D是第%d名 E是第%d名\n",a,b,c,d,e);
return 0;
}
return 0;
}