样例输入
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]);
}
}