|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int check (char s1[],char s2[])
{
int i,l;
for(i=0;i<=19;i++)
if(s1[i]!=s2[i])
break;
if(s1[i]>s2[i])
l=1;
else if(s1[i]==s2[i])
l=0;
else
l=-1;
printf("\n");
return l;
}
int main()
{
char str1[20];
char str2[20];
gets(str1);
gets(str2);
printf("%d",check(str1,str2));
}
为何我输入相同字符串,结果显示为1,为什么不是0?而且似乎得不到为0的结果。
本帖最后由 傻眼貓咪 于 2023-2-11 17:45 编辑
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- int check(char s1[], char s2[])
- {
- // int i, l; <------- 不需要这行
- for (int i = 0; i <= 19 && s1[i] && s2[i]; i++) { // <------- 这里稍微作修改
- if (s1[i] != s2[i])
- return s1[i] - s2[i]; // <------- 这里稍微作修改
- if (!s2[i] && s1[i]) return -1;
- else if (!s1[i] && s2[i]) return 1;
- /* ----------------------------------------------------------
- if (s1[i] > s2[i]) <------ 上面已经修改,这里不需要这行
- l = 1;
- else if (s1[i] == s2[i]) <------ 直接在最下面返回就可以了
- l = 0;
- else
- l = -1; <------ 上面已经修改,这里不需要这行
- ---------------------------------------------------------- */
- }
-
- // printf("\n"); <------- 不需要这行
- return 0; // <------- 这里稍微作修改
- }
- int main()
- {
- char str1[20];
- char str2[20];
- gets(str1);
- gets(str2);
- printf("%d", check(str1, str2));
- }
复制代码
|
|