4人有一人做了好事,他们分别说a说:'不是我,b说;是c,c说:‘是d’,d说:'他胡说’。c语言编程找做好事的

用数学表达式编程1!1为真,0为假!

#include <stdio.h>
int main(void) {
    const char men[] = { 'a', 'b', 'c', 'd' };
    int a, b, c, d;
    for (int who = 0; who < 4; who++) {
        a = (who != 0);
        b = (who == 2);
        c = (who == 3);
        d = (who != 3);
        printf("%i %i %i %i\n",a,b,c,d);
        if ((a + b + c + d) == 3) printf("goodman is %c\n", men[who]);
    }
    return 0;
}

0 0 0 1
1 0 0 1
1 1 0 1
goodman is c
1 0 1 0
Program ended with exit code: 0

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-18
是A,因为B,C,D都没提到A,就让那三个人纠结去吧,就是A
第2个回答  2012-04-18
是d a convent; b 跳转c ;c跳d; d break;
第3个回答  推荐于2016-11-05
答案:goodman is a

#include <stdio.h>

int main(void)
{
const char men[] = {'a', 'b', 'c', 'd'};
int gm; /* gm = goodman */
int a, b, c, d;

for (gm=0; gm<4; gm++) {
a = (gm != 0);
b = (gm == 2);
c = (gm == 3);
d = (gm != 3);
/* only one goodman and only one of them is right */
if (a+b+c+d == 1) printf("goodman is %c\n", men[gm]);
}

return 0;
}本回答被提问者采纳
第4个回答  2012-04-18
是a
相似回答