为了简化起见,我的第一串代码的输出格式是输出了A、B、C的饭量。望见谅!
x、y、z分别表示A、B、C的饭量
A说:x
C说:y
★代码一及注释▲
#include
void main()
{
int x,y,z;/*x、y、z分别表示A、B、C可能的饭量*/
int a,b,c;/*a、b、c分别表示经过判断后得出的A、B、C实际的饭量*/
for(x=1;x<=2;x++)/*穷举x、y、z的所有可能取值情况*/
for(y=0;y<=2;y++)
for(z=0;z<=2;z++)
if(x!=y&&x!=z&&y!=z)/*三个人的饭量不相等,这个if语句排除饭量相等的情况*/
{
a=b=c=2;/*初始化为2,下面如果某个人的命题是正确的,其饭量将减去1*/
if(x
a--;
c--;
}
else
b--;
if(x>z)
b--;
if(y
if(a!=b&&b!=c&&c!=a)
printf("A、B、C的饭量分别为:%d、%d、%d。\n",a,b,c);/*得出实际饭量,实际饭量不相等*/
}
}
执行结果:A、B、C的饭量分别为:2、0、1。
★代码二●
#include
void main()
{
int x,y,z;/*x、y、z分别表示A、B、C可能的饭量*/
int a,b,c;/*a、b、c分别表示经过判断后得出的A、B、C实际的饭量*/
for(x=1;x<=2;x++)/*穷举x、y、z的所有可能取值情况*/
for(y=0;y<=2;y++)
for(z=0;z<=2;z++)
if(x!=y&&x!=z&&y!=z)/*三个人的饭量不相等,这个if语句排除饭量相等的情况*/
{
a=b=c=2;/*初始化为2,下面如果某个人的命题是正确的,其饭量将减去1*/
if(x
a--;
c--;
}
else
b--;
if(x>z)
b--;
if(y
if(a!=b&&b!=c&&c!=a)
{
if(a==2)
{
printf("饭量最大的是:A\n");
if(b==0)
printf("饭量最小的是:B\n");
else
printf("饭量最小的是:C\n");
}
else if(b==2)
{
printf("饭量最大的是:B\n");
if(a==0)
printf("饭量最小的是:A\n");
else
printf("饭量最小的是:C\n");
}
else
{
printf("饭量最大的是:C\n");
if(a==0)
printf("饭量最小的是:A\n");
else
printf("饭量最小的是:B\n");
}
}
}
}
为了简化起见,我的第一串代码的输出格式是输出了A、B、C的饭量。望见谅!
x、y、z分别表示A、B、C的饭量
A说:x B说:x>y,x>z C说:y 这道题的意思就是,三个人每个人都给出了两个命题。饭量大的给的命题错误多,又由于饭量不相等,所以,对应的给出的命题的正确个数也不相同。他们三个中有一个人给出了两个错误的命题,还有一个人给出了一个错误的和一个正确的,剩余的一个给出了两个错误的命题。显然,由于饭量不能相等,所以A说的“x=z”显然是错的。也就是说,A说的两个命题至少有一个错的。如果用x、y、z分别表示A、B、C的饭量的话,A的饭量可能是1或者2(0表示饭量最小,1表示饭量适中,2表示饭量最大),B、C的饭量则不能立即确定。 ★代码一及注释▲ #include void main() { int x,y,z;/*x、y、z分别表示A、B、C可能的饭量*/ int a,b,c;/*a、b、c分别表示经过判断后得出的A、B、C实际的饭量*/ for(x=1;x<=2;x++)/*穷举x、y、z的所有可能取值情况*/ for(y=0;y<=2;y++) for(z=0;z<=2;z++) if(x!=y&&x!=z&&y!=z)/*三个人的饭量不相等,这个if语句排除饭量相等的情况*/ { a=b=c=2;/*初始化为2,下面如果某个人的命题是正确的,其饭量将减去1*/ if(x { a--; c--; } else b--; if(x>z) b--; if(y c--; if(a!=b&&b!=c&&c!=a) printf("A、B、C的饭量分别为:%d、%d、%d。\n",a,b,c);/*得出实际饭量,实际饭量不相等*/ } } 执行结果:A、B、C的饭量分别为:2、0、1。 ★代码二● #include void main() { int x,y,z;/*x、y、z分别表示A、B、C可能的饭量*/ int a,b,c;/*a、b、c分别表示经过判断后得出的A、B、C实际的饭量*/ for(x=1;x<=2;x++)/*穷举x、y、z的所有可能取值情况*/ for(y=0;y<=2;y++) for(z=0;z<=2;z++) if(x!=y&&x!=z&&y!=z)/*三个人的饭量不相等,这个if语句排除饭量相等的情况*/ { a=b=c=2;/*初始化为2,下面如果某个人的命题是正确的,其饭量将减去1*/ if(x { a--; c--; } else b--; if(x>z) b--; if(y c--; if(a!=b&&b!=c&&c!=a) { if(a==2) { printf("饭量最大的是:A\n"); if(b==0) printf("饭量最小的是:B\n"); else printf("饭量最小的是:C\n"); } else if(b==2) { printf("饭量最大的是:B\n"); if(a==0) printf("饭量最小的是:A\n"); else printf("饭量最小的是:C\n"); } else { printf("饭量最大的是:C\n"); if(a==0) printf("饭量最小的是:A\n"); else printf("饭量最小的是:B\n"); } } } }