下你所需,载你所想!
汇集开发技术源码资料

c++ 离散实验

:10.323KB :1 :2022-09-16 23:13:43

部分简介

int main()

{

struct tmd gs0[100];//推理前提条件

char result0[128]; //结论

struct tmd tmdrec[1024];//最多1000步



char stmdp[128];

char lastNiYou[128] = " ";//上一个推理式的理由

char *ny01 = "消解";

int i = 0, j = 0, k = 0;

int np = 1, np0 = 0, isOk = 0;

int i0 = 0, nPosLitter = 0, nPosCond = 0;//文字起始的位置,首个文字的位置,消解式的位置

np0 = inputPrimary( gs0 );

//输入结论

printf( "输入要推理的结论,结论只能是文字,\n若是条件式,析取式请先手工转换为条件,将前件作为附加前提:" );

gets( result0 );

fflush( stdin );

for (i = 0; i < np0; i )

{

tmdrec[i] = gs0[i];//所有原始公式转抄到tmdrec中

}

np = i;//推理队列的尾部指针

nPosLitter = 0;//文字的位置号

nPosCond = 0;//条件的位置号

isOk = 0;

i0 = -1;

while (1)

{

i = i0 1;//寻找下一个文字,i是起始位置,np是命令串的长度

while ((i < np) && (tmdrec[i].isLitter != 1))

i ;

if (i >= np)

break;//找不到文字我就没法推理了

i0 = i;//记录从源头查询的首个文字的位置号,下次从此号往后寻找

nPosLitter = i;//记录文字的位置

strcpy( stmdp, tmdrec[i].gs );//保存当前文字的内容

np0 = np - 1;

while (np > np0) //从当前文字的下一个位置起寻找析取式,则一路往下走

热门推荐

相关文章