| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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                            ;
 
 - }
 
  复制代码 
 
 
 |   
 
 
 
 |