如何用c语言完成程序
公司新进来一位女同事,长得非常漂亮,是个万人迷。全公司有9名同事都想追求她,据说她已经和这9个人中的1个正式开始交往了,只不过不想公开罢了。好事者纷纷向这9位同事打探消息,得到的回答分别是:
A:这个人一定是G,没错。
B:我想应该是G。
C:这个人就是我。
D:C最会装模作样,他在吹牛!
E:G不是会说谎的人。
F:一定是I。
G:这个人既不是我也不是I。
H:C才是她的男友。
I:是我才对。
这9句话中,只有2个人说了实话。你能判断出谁才是这位漂亮女同事的男友吗?
如何用c语言完成程序
公司新进来一位女同事,长得非常漂亮,是个万人迷。全公司有9名同事都想追求她,据说她已经和这9个人中的1个正式开始交往了,只不过不想公开罢了。好事者纷纷向这9位同事打探消息,得到的回答分别是:
A:这个人一定是G,没错。
B:我想应该是G。
C:这个人就是我。
D:C最会装模作样,他在吹牛!
E:G不是会说谎的人。
F:一定是I。
G:这个人既不是我也不是I。
H:C才是她的男友。
I:是我才对。
这9句话中,只有2个人说了实话。你能判断出谁才是这位漂亮女同事的男友吗?
尝试了一下,最少是3个说的真话
给个思路参考一下:将每个人的话写成一个判断的形式,就是一个bool值,如果为真则为1,为假则为0,然后将每个人代入进行判断求和,如果为2则这个人就是真的,如果不是2则这个人是假的。
代码参考如下:
#include <stdio.h>
int main() {
char r;
int sum = 0;
for (int i = 0; i < 9; i++) {
sum = 0;
r = 'a' + i;
sum = (r == 'g') + (r == 'g') + (r == 'c') + (r != 'c') + (r != 'g' && r != 'i') + (r == 'i') + (r != 'g' && r != 'i') + (r == 'c') + (r == 'i');
if (sum == 2) {
printf("结果是:%c\n", r);
break;
}
}
printf("%d\n", sum);
return 0;
}