请教一道编程题,使用java编写,简短最好,谢谢!

清华附中有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。A说:不是我。B说:是C。C说:是D。D说:他胡说。已知三个人说的是真话,一个人说的... 清华附中有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。
A说:不是我。
B说:是C。
C说:是D。
D说:他胡说。
已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。
展开
 我来答
老冯文库
2012-02-11 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8737

向TA提问 私信TA
展开全部
public class Test13 {
public static void main(String[] args) {
int a, b, c, d; //4位同学
boolean[] done = new boolean[]{true, false}; //每位同学的做好事情况,只有1人做好事
boolean A, B, C, D; //每位同学说话的真假情况,3人说真话,1人说假话

int len = done.length;
int count_done; //做好事的人数
int count_say; //话真话的人数

for(a=0; a<len; a++)
for(b=0; b<len; b++)
for(c=0; c<len; c++)
for(d=0; d<len; d++){

A = !done[a];
B = done[c];
C = done[d];
D = !C;

count_say = 0;
if(A == true)
count_say++;
if(B == true)
count_say++;
if(C == true)
count_say++;
if(D == true)
count_say++;

count_done = 0;
if(done[a] == true)
count_done++;
if(done[b] == true)
count_done++;
if(done[c] == true)
count_done++;
if(done[d] == true)
count_done++;

if(count_say == 3 && count_done == 1){
System.out.println("Say : ");
System.out.println("A : " + A + "\tB : " + B + "\tC : " + C + "\tD : " + D);
System.out.println("Done : ");
System.out.println("A : " + done[a] + "\tB : " + done[b] + "\tC : " + done[c] + "\tD : " + done[d]);
}
}
}
}

运行结果:
Say :
A : true B : true C : false D : true
Done :
A : false B : false C : true D : false
你在那里我来陪你9195
2012-02-11
知道答主
回答量:37
采纳率:0%
帮助的人:20.4万
展开全部
D说:C胡说。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hello812293858
2012-02-11 · TA获得超过749个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:371万
展开全部
能用简单的C语言来完成的为什么要用JAVA写呢(不解)?
追问
这是一道试题要求用java
追答
对不起,我只会C语言,恕我无法为你解答。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式