离散数学:C语言生成极小项

这里写图片描述
样例输入
PQR 010
样例输出
\neg P\wedge Q\wedge \neg R

注:该代码仅为下一届小学弟小学妹做个参考,代码质量堪忧,不过能保证满分过,程序有小错误,并没有改,有两种改法,原因是不同编译器的问题,实测在VC6.0和采用以gcc底层编译的环境会出现不同的结果,改法有两种
方式一:如果是vc6.0环境则将row_pos < strlen(row1)-2改为row_pos < strlen(row1)-1
如果环境底层是采用gcc方式编译,则无需改动
方式二:将gets(row1);gets(row2);改为scanf("%s",row1);scanf("%s",row2);并且将row_pos < strlen(row1)-2改为row_pos < strlen(row1)-1,推荐采用这种改法,最好不要在使用gets,后边还会有两篇博客,尤其是最后一篇采用gets方式在gcc下会有很大问题,不过VC6.0下没问题

学校提供的平台不支持java代码,只能提交C或者C++,而这些题都是对字符串的操作,推荐使用C++,会方便太多!C的话处理起来有点麻烦

#include <stdio.h>
#include <malloc.h> 
#include <string.h>
void my_print(char *c,int i,int num);
int main()
{
	char* row1;
	char* row2;
	int row_pos = 0;
	char row1_elem;
	char row2_elem;
	char a[2]={' ','T'};//1
	char b[6]={'\\','n','e','g',' ','T'};//0
	char c[7]={'\\','w','e','d','g','e',' '};
	int i = 0;
	char pre = '0';

	row1 = (char*) malloc(sizeof(char));
	gets(row1);
	row2 = (char*) malloc(sizeof(char));
	gets(row2);

	for(row_pos; row_pos < strlen(row1); row_pos++){
		row1_elem = *(row1+row_pos);
		row2_elem = *(row2+row_pos);
		if(row2_elem == '0'){
			b[5] = row1_elem;
			my_print(b,0,6);
		}else{
			a[1] = row1_elem;
			if(pre = '1' && row_pos != 0){
				my_print(a,1,2);
			}else{
				my_print(a,0,2);
			}	
		}
		if(row_pos < strlen(row1)-2){
			my_print(c,0,7);
		}
		pre = row1_elem;
		
	}
	printf("\n");
	return 0;
}

void my_print(char *c,int i,int num){
	for(i;i<num;i++){
		printf("%c",c[i]);
	}
}





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值