c语言错误提示框,唉,老问题,C语言程序运行后出现遇到错误需要关闭的对话框...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

代码如下(是一个输出范式真值表的程序)

#include

#include

#include

#include

int suan(int a,int b,char *ch_p,int*num);

void main()

{

char *ch;

int n=0,i=0,j=0,k=0,*num,cpy[2][52],h1,h2=0,h3;

printf("不识别下角标和括号,最多支持52个命题变量,合取、析取、非用*、+、!表示\n");

printf("输入表达式:");

scanf("%s",&ch);

printf("\n计算中...\n");

while(ch[i]!='\0')

{

if('A'<=ch[i]&&ch[i]<='z')

n++;

i++;

}

num=(int*)malloc(n*sizeof(int));

for(i=0;ch[i]!='\0';i++)

{

if('A'<=ch[i]&&ch[i]<='z')

{

k++;

if(i=0)

printf("%c\t",ch[i]);

else

{

h1=0;

for(j=0;j

{

if('A'<=ch[j]&&ch[i]<='z')

h1++;

if(ch[i]==ch[j])

{

cpy[0][h2]=h1;cpy[1][h2]=k;

h2++;

break;

}

else

if(j=0)

printf("%c\t",ch[i]);

}

}

}

}

printf("%s\n",ch);

for(i=0;i<=n-1;i++)

{

for(j=0;j=n-1;j++)

{

num[n-1-j]=i%2;

i=i/2;

}

j=0;k=0;h1=0;h3=0;

while(ch[j]!='\0')

{

while(ch[j]!='+'&&ch[j]!='\0')

{

k++;

j++;

}

h2=suan(h1,k-1,ch,num);

h3=h3+h2;

if(h3>1)

h3=1;

h1=k;

}

k=0;

for(j=0;j<52;j++)

{

if(num[cpy[0][j]-1]==num[cpy[1][j]-1])

k++;

}

if(k==0)

{

for(j=0;j

for(h1=0;h1<52;h1++)

{

if(j!=cpy[1][h1]-1)

printf("%d\t",num[j]);

}

printf("\n");

}

}

}

int suan(int a,int b,char *ch_p,int *num)

{

int t1,t2,k1=0;

t1=num[0];

for(t2=a;t2<=b;t2++)

{

if('A'<=ch_p[t2]&&ch_p[t2]<='z')

k1++;

if(ch_p[t2]=='!')

{

if(num[k1-1]==0)

num[k1-1]=1;

num[k1-1]=0;

}

if(ch_p[t2]=='*')

t1=t1*num[k1];

}

return t1;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值