导航菜单
首页 >  刑侦考试逻辑推理题  > C语言 2018年刑侦科推理试题

C语言 2018年刑侦科推理试题

        一开始见到题目的时候,我也是懵逼的,然而听说网上有人用编程解决了这个问题,我也跃跃欲试,在没有参考别人代码的情况下,思考,打草稿,写代码,调试找bug总共还是花费近5个小时,下面是题目:

        除了第一个选择题,其余均可以离散化成许多对或者错的条件,只要满足了所有条件,就能得出结果,方法是最笨的暴力搜索,按照字典排序一个个尝试即可。

#include#include#include//求最小值函数 int max(int a,int b) {if(a>b) return a;return b;}//求最大值函数 int min(int a,int b) {if(a>b) return b;return a;}//第二个选择题 int as2(char *a) {if(abs(a[5]-a[2])==2) return 0;return 1;}//第三个选择题 int as3(char *a) {int n=0;if(a[3]==65&&a[2]!=a[3]&&a[4]!=a[3]&&a[6]!=a[3]) n++;if(a[3]==66&&a[2]!=a[6]&&a[3]!=a[6]&&a[4]!=a[6]) n++;if(a[3]==67&&a[3]!=a[2]&&a[4]!=a[2]&&a[6]!=a[2]) n++;if(a[3]==68&&a[2]!=a[4]&&a[3]!=a[4]&&a[6]!=a[4]) n++;if(n==1) return 0;return 1;}//第四个选择题 int as4(char *a) {int n=0;if(a[4]==65&&a[1]==a[5]&&a[2]!=a[7]&&a[1]!=a[9]&&a[6]!=a[10]) n++;if(a[4]==66&&a[1]!=a[5]&&a[2]==a[7]&&a[1]!=a[9]&&a[6]!=a[10]) n++;if(a[4]==67&&a[1]!=a[5]&&a[2]!=a[7]&&a[1]==a[9]&&a[6]!=a[10]) n++;if(a[4]==68&&a[1]!=a[5]&&a[2]!=a[7]&&a[1]!=a[9]&&a[6]==a[10]) n++;    if(n==1) return 0;return 1;}//第五个选择题 int as5(char *a) {if((a[5]==65&&a[8]==65)||(a[5]==66&&a[4]==66)||(a[5]==67&&a[9]==67)||(a[5]==68&&a[7]==68)) return 0;return 1;}//第六个选择题 int as6(char *a) {int n=0;        if(a[6]==65&&a[2]==a[8]&&a[4]==a[8]&&(a[1]!=a[8]||a[6]!=a[8])&&(a[3]!=a[8]||a[10]!=a[8])&&(a[5]!=a[8]||a[9]!=a[8])) n++;if(a[6]==66&&a[1]==a[8]&&a[6]==a[8]&&(a[2]!=a[8]||a[4]!=a[8])&&(a[3]!=a[8]||a[10]!=a[8])&&(a[5]!=a[8]||a[9]!=a[8])) n++;if(a[6]==67&&a[3]==a[8]&&a[10]==a[8]&&(a[2]!=a[8]||a[4]!=a[8])&&(a[1]!=a[8]||a[6]!=a[8])&&(a[5]!=a[8]||a[9]!=a[8])) n++;if(a[6]==68&&a[5]==a[8]&&a[9]==a[8]&&(a[2]!=a[8]||a[4]!=a[8])&&(a[1]!=a[8]||a[6]!=a[8])&&(a[3]!=a[8]||a[10]!=a[8])) n++;if(n==1) return 0;return 1;}//第七个选择题 int as7(char *a) {int a1=0,b1=0,c1=0,d1=0,n=0;for(int i=1;i

相关推荐: