一开始我想使用随机数和数组,rand()%2随机出0,1,后来发现思路存在漏洞:如果A、B、C、D被赋予0或者1,,真假已被确认,如何得到正确的输出?
int number[4];
for(i=1;i<=4;i++){
number[i]=rand()%2;
}
后来发现使用循环和if判断语句即可。
#include <stdio.h>
int main()
{
int a,b,c,d,cnt=0;
for(a=0;a<=1;a++){
if(a==1)
cnt++;
for(b=0;b<=1;b++){
if(b==1)
cnt++;
for(c=0;c<=1;c++){
if(c==1)
cnt++;
for(d=0;d<=1;d++){
if(d==1)
cnt++;
if(cnt==1){
printf("%d,%d,%d,%d\n",a,b,c,d);
if(a==1)
printf("A是罪犯.\n");
if(b==1)
printf("B是罪犯.\n");
if(c==1)
printf("C是罪犯.\n");
if(d==1)
printf("D是罪犯.\n");
}
}
}
}
}
}
代码太繁琐,参考这位作者的似乎更好真假话判断https://blog.csdn.net/qq_51399145/article/details/112392238if条件语句为什么只写了一个变量?https://zhidao.baidu.com/question/711889039524481245.html