七轮回 发表于 2016-10-22 16:59:11

为什么就只有30分

1012662902 发表于 2016-10-22 19:34:09

本帖最后由 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

七轮回 发表于 2016-10-23 23:09:51

1012662902 发表于 2016-10-22 19:34
1、result没初始化
2、两个字符串长度不相同的话,用你这代码肯定有一个字符串出现乱码。
解决方法:


可是运行完之后还是能够返回正确的结果啊

1012662902 发表于 2016-10-24 20:57:16

如果输入的是
s1:abc
s2:abcde
答案就不对了,即使答案对,提交后返回的是Runtime Error

谦虚求学 发表于 2016-11-1 14:43:52

{:5_107:}

lili200238 发表于 2016-11-2 14:08:46

1012662902 发表于 2016-10-22 19:34
1、result没初始化
2、两个字符串长度不相同的话,用你这代码肯定有一个字符串出现乱码。
解决方法:


i!=max-1    这里的含义不理解,可以解释一下吗?

1012662902 发表于 2016-11-2 15:03:03

lili200238 发表于 2016-11-2 14:08
i!=max-1    这里的含义不理解,可以解释一下吗?

错了删掉max-1

小猫学步 发表于 2016-11-3 20:36:34

这个是我写的代码,大家看看有什么问题没有,测试编译通过,运行正常!

#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]
查看完整版本: 为什么就只有30分