用c语言构造真值表,c语言打印真值表(国外英文资料).doc

c语言打印真值表(国外英文资料)

c语言打印真值表

#包括< stdio. h >

#包括

#包括<

#包括<

#包括<

/ *

(1)“!”表示否定

(2)”和“表示合取

(3)“|”表示析取

(4)“>”表示条件

(5)“=”表示双条件

* /

堆栈结构

{

字符*基;

字符*顶部;

int堆栈大小;

};

结构的房间/建立一个比较大的结构体,用于储存字母,和字母所对应的真值

{

ch;

char值;

}值[ 10 ];

无效的举动(char(* STR)[ 50 ],int的步伐,左边)/横向移动字符串

{

int i;

STR [ 0 ] [左] = A;

对(我=左+ 1;i < strlen(str [ 0 ]);i++)

{

STR [ 0 ] i [ 0 ] [ i +步];

STR [ 1 ] i [ 1 ] [ i +步];

}

STR [ 0 ] i=0;

STR [ 1 ] i=0;

返回;

}

布尔isconnect(ch)

{

如果((= =“!”))| |(CH = =’和‘)| |(CH = =“|”)| |(CH = =“>”)| |(CH = =“=”))

返回true;

其他的

返回false;

}

虚空IsFormula(char(* STR)[ 50 ])/关键函数判断Len > = 3的情况

{

int i,j,k;/ /辅助变量

int左= 0,右= 0;

为(i = 0;i < strlen(str [ 0 ]);i++)

{

如果(STR [ 1 ] = 1)

{

左=我;

}

如果(STR [ 1 ] = 2)

{

右=我;

打破;

}

}

STR [ 1 ] [左] = 0;//用完和之后将其标记为0左右

STR [ 1 ]右] = 0;

左向右;

对于(j=1;j=k;j + +)

{

如果(([左] ] 0!”&(IsConnect(STR [ 0 ] [左+ J-1 ])| | STR [ 0 ] [左] = =”+ J-1(')&因而isalpha(STR [ 0 ] [左+ J + 1 ]))/ / '!”的左边为连接符或者'(',右边一定为一

| |(因而isalpha(STR [ 0 ] [左+ ])&(IsConnect(STR [ 0 ] [左+ J-1 ])| |因而isalpha(STR [ 0 ] [左+ J-1 ])| | STR [ 0 ] [左] = =”+ J-1(')&(IsConnect(STR [ 0 ] [左+ J + 1 ])| | STR [ 0 ] [左+ J + 1 ] = = ')'))/ / A的右边为连接符,或者’!”,或者'(',右边为连接符或者右括号

| |(IsConnect(STR [ 0 ] [左+ ])&因而isalpha(STR [ 0 ] [左+ J-1 ])&(STR [ 0 ] [左+ J + 1 ] = =’!”| |因而isalpha(STR [ 0 ] [ 1 ] +左+ J))))/连接符的左边为,右边为非或者一

继续;

其他的

打破;

}

如果(j = k)

{

移动(STR,k,左);

}

如果(右= = strlen(str [ 0 ])- 1)

返回;

其他的

IsFormula(STR);

}

bool CheckFormula(字符串str1)

{

一个字符[ 2 ] [ 50 ];//定义2行数组,STR [ 0 ] [ 1 ]做标记存放字符串,STR

int l = 0,r = 0;//我记录左括号的个数,

R records the number of right brackets

Int i; / / auxiliary variables

Int len=strlen (str[0]);

Str[0][0]='('; / / go to space, and in the str[0] of the outer parentheses, at len>=2

I=1;

While (*str1 = ='\0')

{

If (*str1 = = '')

{

Str[0][i] = *str1;

I++;

}

Str1++;

}

Str[0][i]=');

Str[0][i+1]='\0';

If (len = = 2) / / if a string is empty, that is (the)

Return false;

Else

For (i=0; i< len; i++) / judge all whether paired brackets, and the '(' Mark 1 '' will be marked as 2)

{

If (str[0][i

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值