按照题目要求,我的代码都能满足,但是答案不正确,不知道错在了哪里,或许是对题目的理解有问题吧,有没有谁能解答下疑惑?
我的代码如下:
#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语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:462 |
蛇行矩阵 (C语言代码)浏览:536 |
1054题解浏览:467 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:587 |
C语言程序设计教程(第三版)课后习题12.6 (C语言代码)浏览:662 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:720 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:999 |
【偶数求和】 (C++代码)浏览:701 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:446 |
字符串对比 (C++代码)浏览:565 |