C语言题目:已知某班有4位同学:A、B、C、D。其中有一位同学做了好事,但不知是谁。当被询

2025-02-25 02:13:08
推荐回答(3个)
回答1:

#include 
int main()
{
 int s,a,b,c,d;         /*变量s代表做好事的同学,abcd代表ABCD同学的说法的正确性*/
 for(s='A';s<='D';s++)  /*穷举可能性,用字符'A'--'D'代表4个同学*/
 {
  a=(s!='A');          /*A说不是我: s!='A'*/
  b=(s=='C');          /*B说是C : s=='C'*/
  c=(s=='D');          /*C说是D: s=='D'*/
  d=(s!='D');          /*D说C胡说: s!='D'*/
  if((a+b+c+d)==3)     /*如果有3个人说的是真的就结束循环并输出*/
  {
   printf("做好事的同学是:%c\n",s);
   break;
  }
 }
 return 0;
}

 结果:

回答2:

用表达式,思路有点混乱,但是我知道答案是C

回答3:

#include
//答案是C说假话.
int main(void) {
int A = 1, B = 0, C = 0, D = 0;
if (A && C && D && !D) {
printf("A");
return 0;
}
A = 0, B = 1, C = 0, D = 0;
if (!A && !C && D && !D) {
printf("B");
return 0;
}
A = 0, B = 0, C = 1, D = 0;
if (!A && C && !D && !D) {//D说实话也就是说D不是.
printf("C");
return 0;
}
A = 0, B = 0, C = 0, D = 1;
if (!A && C && D && !D) {
printf("D");
return 0;
}
}