按照题目要求,我的代码都能满足,但是答案不正确,不知道错在了哪里,或许是对题目的理解有问题吧,有没有谁能解答下疑惑?
我的代码如下:
#include <stdio.h>
int strbaohan(char a[],char b[]); //判断字符串a,是否包含字符串b
int charbaohan(char a[],char c); //判断字符串a中,是否含有字符 c
int len(char a[]);
int main(void){
char a[2001],b[2001];
while(EOF != scanf("%s%s",a,b)){
int a_b = strbaohan(a,b);
int b_a = strbaohan(b,a);
if(a_b == 1 && b_a == 1) printf("a==b\n");
else if(a_b == 1 && b_a == 0) printf("a>=b\n");
else if(a_b == 0 && b_a == 1) printf("a<=b\n");
else printf("a!=b\n");
}
return 0;
}
int strbaohan(char a[],char b[]){
int res = 1;
int LEN = len(a);
char c[LEN]; //用一个临时的数组处理数据,而不是直接操作数组a,导致字符串的变化
int j = 0;
while(1){
c[j] = a[j];
j++;
if(c[j] == '\0') break;
}
int i;
i = 0;
int tmp;
while(b[i] != '\0'){
tmp = charbaohan(c,b[i]); //如果b串中有重复的字符,而a串中该字符只有一个
if(tmp != -1 ){
c[tmp] = ' '; //通过这种方式,排除可能的错误
}
else{
res = 0;
break;
}
i++;
}
if( len(a) < len(b) ){
res = 0;
}
return res;
}
int charbaohan(char a[],char c){
int i = 0;
int res = 0;
while(a[i] != '\0'){
if(a[i] == c){
res = 1;
break;
}
i++;
}
if(res == 1) return i;
else return -1;
}
int len(char a[]){
int i = 0;
while(a[i] != '\0'){
i++;
}
return i;
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复