为什么就只有30分
本帖最后由 1012662902 于 2016-10-22 19:35 编辑1、result没初始化
2、两个字符串长度不相同的话,用你这代码肯定有一个字符串出现乱码。
解决方法:
前面int big=0;result=0;
在for里面第一行判断,若i==strlen(s1)&&i!=max-1 big=2,break(s1是s2的前缀,s1<s2)
若i==strlen(s2)&&i!=max-1 big=1,break(理由同上)
后面判断为
if(big==1||result>0) cout<<s1+">"+s2<<endl
else if(big==2||result<0) cout<<s2+">"+s1<<endl
else cout<<s1+"="+s2<<endl 1012662902 发表于 2016-10-22 19:34
1、result没初始化
2、两个字符串长度不相同的话,用你这代码肯定有一个字符串出现乱码。
解决方法:
可是运行完之后还是能够返回正确的结果啊
如果输入的是
s1:abc
s2:abcde
答案就不对了,即使答案对,提交后返回的是Runtime Error {:5_107:} 1012662902 发表于 2016-10-22 19:34
1、result没初始化
2、两个字符串长度不相同的话,用你这代码肯定有一个字符串出现乱码。
解决方法:
i!=max-1 这里的含义不理解,可以解释一下吗? lili200238 发表于 2016-11-2 14:08
i!=max-1 这里的含义不理解,可以解释一下吗?
错了删掉max-1 这个是我写的代码,大家看看有什么问题没有,测试编译通过,运行正常!
#include<stdio.h>
#include<string.h>
int main()
{
char s1;
char s2;
int len;
printf("请输入第一个字符串,以回车键结束!\n");
scanf("%s",&s1);//接收字符串
printf("请输入第二个字符串,以回车键结束!\n");
scanf("%s",&s2);
len=(strlen(s1)>strlen(s2)?strlen(s1):strlen(s2));
int result ,i;
for(i=0;i<len;i++)
{
result=s1-s2;
if (result!=0)//如果两个字符相同,比较下一个
{
if (result>0)
{
printf("%s>%s\n",s1,s2);
break;//break对if语句无效,break终结的是循环语句
}
else
{
printf("%s<%s\n",s1,s2);
break;
}
}
}
return 0;
}
页:
[1]