|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main()
{
char str1[20];
char str2[20];
gets(str1);
gets(str2);
int i;
for(i=0;i<=19;i++)
if(str1[i]!=str2[i]) //这一段是否多余呢?
break;
if(str1[i]>str2[i])
printf("%d",str1[i]-str2[i]);
else if(str1[i]==str2[i])
printf("%d",0);
else
printf("%d",str1[i]-str2[i]);
printf("\n");
return 0;
}
本帖最后由 jackz007 于 2022-11-28 23:52 编辑
这一句在 str1 = str2 的情况下确实多余,因为,循环会在条件不能满足(i <= 19)的情况下结束,而不会指望 break,但是,当 str1 和 str2 不相同的时候,这个 break 恰恰是最为关键的语句,因为,两个字符串对应的字符不相等,就没有必要继续循环了,而且,这个时候,恰好可以让两个字符串见见高低。
- #include <stdio.h>
- int main()
- {
- char str1[20] ;
- char str2[20] ;
- int i ;
- gets(str1) ;
- gets(str2) ;
- for(i = 0 ; str1[i] && str2[i] ; i ++)
- if(str1[i] != str2[i])
- break ;
- printf("%d\n" , str1[i] - str2[i]) ;
- return 0 ;
- }
复制代码
|
|