四个嫌疑犯的谁是凶手 A说不是我 B说是C C说是D D说C在胡说 一个人说谎三个人说真,用JAVA解决

四个嫌疑犯的谁是凶手 A说不是我 B说是C C说是D D说C在胡说 一个人说谎三个人说真,用JAVA解决

第1个回答  2017-12-19
int main(){
int s,a,b,c,d; //变量s代表做好事的同学,abcd代表ABCD同学的说法的正确性
for(s='A';s<='D';s++) {
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个回答  2019-11-08
public class Who {

public static void main(String[] args) {
for (int who = 0; who < 4; who++) {
int a = who != 0 ? 1 : 0;
int b = who == 2 ? 1 : 0;
int c = who == 3 ? 1 : 0;
int d = who != 3 ? 1 : 0;
if ((a + b + c + d) == 3)
System.out.println("that is "+(char) (who + 65));
}
}
}

第3个回答  2017-12-19
package testDemo;
public class WhoIsMurderer {
 
 public static boolean A(String Murderer){
  return !Murderer.equals("A");
  
 }
 
 public static boolean B(String Murderer){
  return Murderer.equals("C");
  
 }
 
 public static boolean C(String Murderer){
  return Murderer.equals("D");
  
 }
 
 public  static boolean D(String Murderer){
  return !C(Murderer);
  
 }
 
 public static void main(String args[]){
  String[] Murderers={"A","B","C","D"};

  for(String Murderer: Murderers){
    int sumTrue = 0;
   if(A(Murderer)){
    sumTrue++;
   }if(B(Murderer)){
    sumTrue++;
   }if(C(Murderer)){
    sumTrue++;
   }if(D(Murderer)){
    sumTrue++;
   } 
   if(sumTrue==3){
    System.out.println("Murderer is "+Murderer);
   }
  }
 
 }
 
}

实行结果:
Murderer is C

本回答被提问者采纳