飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2886|回复: 0

编程马拉松(4)

[复制链接]

该用户从未签到

发表于 2007-8-14 07:46:33 | 显示全部楼层 |阅读模式
引自第八阁论坛:http://bbs.chinadbg.cn/forum-7-1.html
飞翔技术论坛:http://www.powk.net/bbs/forumdisplay.php?fid=4&page=1
目的,主要是熟悉字串操作。
键盘输入两组字串,要求大于6个小于20并比较两组串是不是相等,如小于6大于20或相等重新输入,然后

输入出较大的串
字符串比较原理:是把每个字符串的第一个字符的ASCII码比较如果A串第一个字符大于B串第一个字符,A

串大于B串,如果相等比第二个字符,大小同第一个字符的比较,如果完全相同就是相等。

天圆地方所写delphi代码

  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3.   TmpString:array[0..1] of String;
  4.   i,Error:Integer;
  5. begin
  6. Error:=1;
  7. i:=0;
  8. while Error<>0 do
  9. begin
  10. TmpString[i]:=InputBox('请输入字符串'+IntToStr(i+1),'要求字符串字数大于6小于

  11. 20','123343434126s');
  12. If (length(TmpString[i])<7) or (Length(TmpString[1])>19) then
  13. begin
  14.   showmessage('字符串'+IntToStr(i)+'字数不对!'+'请重新输入..');
  15.   Continue;
  16. end;
  17. Inc(i);
  18. if i=2 then
  19.     begin
  20.         i:=0;
  21.         if TmpString[0]=TmpString[1] then ShowMessage('字符串相同请重新输入')
  22.         else if Length(TmpString[0])>length(TmpString[1]) then
  23.               begin
  24.               ShowMessage('较大的为字符串1:'+TmpString[0]);
  25.               Error:=0;
  26.               end
  27.         else
  28.           begin
  29.           ShowMessage('较大的为字符串2:'+TmpString[1]);
  30.           Error:=0;
  31.           end;
  32.        end;
  33. end;
  34. end;
复制代码

freesoft 写的C代码:此代码有一点小错啊。希望能找出来
以下是C代码,程序有点有错,好好看看。

  1. #include "stdio.h"
  2. #include "conio.h"
  3. #include "string.h"

  4. main()
  5. {
  6. int len1=0,len2=0,max=0;
  7. char st1[20],st2[20];     /*定义两个字串*/
  8.    
  9. while(max==0)
  10.     {
  11.         while (len1==0)
  12.         {
  13.         printf("input string(1):\n");
  14.         gets(st1);   /*输入字串1也可以用scanf("%s",st1)*/
  15.         printf("You input string(1):\n") ;
  16.         puts(st1);
  17.         len1=strlen(st1) ;
  18.             if (len1<=6)
  19.             {
  20.             printf("%d\n",len1)  ;
  21.             len1=0   ;
  22.             printf("You string(1) access err (<=6 )")  ;
  23.             }
  24.             if (len1=>20)
  25.             {
  26.             printf("%d\n",len1)  ;
  27.             len1=0   ;
  28.             printf("You string(1) access err (=>20)")  ;
  29.             }
  30.         }
  31.         while (len2==0)
  32.         {
  33.         printf("input string(2):\n");
  34.         gets(st2);   /*也可以用scanf("%s",st2)*/
  35.         printf("You input string(2):\n")   ;
  36.         puts(st2);
  37.         len2=strlen(st2) ;
  38.             if (len2<=6)
  39.             {
  40.             len2=0   ;
  41.             printf("You string(2) access err (<6 =)")  ;
  42.             }
  43.             if (len2=>20)
  44.             {
  45.             len2=0   ;
  46.             printf("You string(2) access err ( =>20)")  ;
  47.             }
  48.         }
  49.     max=strcmp(st1,st2);

  50.         if(max=0)
  51.         {
  52.         len1=len2=max=0;
  53.         printf("Access err,string(1)=string(2)") ;
  54.         }
  55.             if(max>0)
  56.             {
  57.             max=1;
  58.             printf("string(1)>string(2)>>string(1)=%S\n",st1)  ;
  59.             }
  60.             else
  61.             {
  62.             max=-1;
  63.             printf("string(2)>string(1)>>string(2)=%s\n",st2)  ;
  64.             }
  65.     getch();
  66.     }

  67. }
复制代码

meiyululu 的汇编代码

  1. ;第一个文件 Strings.asm
  2. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  3. ; Sample code for < Win32ASM Programming >
  4. ; by
  5. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  6. ; Strings.asm
  7. ; 字符串处理
  8. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  9. ; 使用 nmake 或下列命令进行编译和链接:
  10. ; ml /c /coff Strings.asm
  11. ; rc Strings.rc
  12. ; Link /subsystem:windows Strings.obj Strings.res
  13. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  14.                 .386
  15.                 .model flat, stdcall
  16.                 option casemap :none
  17. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  18. ; Include 文件定义
  19. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  20. include                windows.inc
  21. include                user32.inc
  22. includelib        user32.lib
  23. include                kernel32.inc
  24. includelib        kernel32.lib
  25. include     string.inc
  26. includelib        string.LIB
  27. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  28. ; Equ 等值定义
  29. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  30. IDD_DIA     equ      106
  31. IDC_STR1    equ      1000
  32. IDC_STR2    equ      1001
  33. IDC_MAX     equ      1002

  34. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  35. ; 数据段
  36. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  37.                 .data?

  38. hInstance        dd                ?
  39.        
  40.                 .data
  41.                
  42. str1      db      255 dup(0)
  43. str2      db      255 dup(0)
  44. s         db      0, 0
  45.                 .const

  46. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  47. ; 代码段
  48. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  49.                 .code

  50. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  51. ; 字符串处理函数
  52. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  53. _MyStrProc        proc  uses ebx edi esi  hWnd
  54.                        
  55.                         invoke SetDlgItemText, hWnd, IDC_MAX, addr s
  56.                        
  57.                         invoke        RtlZeroMemory, addr str1, sizeof str1
  58.                         invoke        RtlZeroMemory, addr str2, sizeof str2
  59.                        
  60.                         invoke GetDlgItemText, hWnd, IDC_STR1, addr str1, sizeof str1
  61.                         invoke GetDlgItemText, hWnd, IDC_STR2, addr str2, sizeof str2
  62.                        
  63.                         invoke _strlen, addr str1
  64.                         .if eax > 20 || eax <=6
  65.                                 invoke SetDlgItemText, hWnd, IDC_STR1, addr s
  66.                                 ret
  67.                         .endif
  68.                        
  69.                         invoke _strlen, addr str2
  70.                         .if eax >= 20 || eax <=6
  71.                                 invoke SetDlgItemText, hWnd, IDC_STR2, addr s
  72.                                 ret
  73.                         .endif
  74.                        
  75.                         invoke  _strcmp, addr str1, addr str2
  76.                        
  77.                          ;********注意以下不能用.if   .elseif   .endif  伪指令 ,因为eax 的值

  78. 可能是负数
  79.                          ;********而这几个 伪指令 都是无符号数的比较
  80.                          ;
  81.                          ;在分支和循环的伪指令反汇编后可以发现,在使用>、>=、<和<=比较符时,
  82.                          ;MASM的伪指令总是将比较以后的跳转指令使用为jb和jnb等无符号数比较跳

  83. 转的指令,
  84.                          ; 这就意味着,MASM的条件测试总是把操作数当做无符号数看待,这样,假

  85. 设eax等于1,
  86.                          ;那么表达式(eax > -1)的值是“假”,因为-1表示为0ffffffffh,如果当

  87. 做无符号数看,
  88.                          ;它是最大的数!如果程序中需要构造有符号数的比较分支或循环结构,
  89.                         ; 那么必须另外用jl和jg等有符号数比较跳转的指令来完成,
  90.                         ;使用条件测试配合分支或循环伪指令可能会得到错误的结果!

  91.                         cmp  eax , 0
  92.                         jl L_L
  93.                         jg L_G
  94.                        
  95.                         invoke SetDlgItemText, hWnd, IDC_MAX, addr str1
  96.                         jmp L_END
  97.                        
  98. L_L:                invoke SetDlgItemText, hWnd, IDC_MAX, addr str2
  99.                         jmp L_END
  100.                                
  101. L_G:                invoke SetDlgItemText, hWnd, IDC_MAX, addr str1
  102. L_END:               

  103.                         ret
  104.                        
  105. _MyStrProc        endp

  106. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  107. ; 对话框处理函数
  108. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  109. _MyDialogProc        proc   hWnd,uMsg,wParam,lParam
  110.                
  111.                 mov eax, uMsg
  112.                 .if  eax == WM_CLOSE
  113.             invoke   EndDialog,hWnd,NULL
  114.                 .elseif eax == WM_COMMAND
  115.                         mov eax, wParam
  116.                         movzx eax, ax
  117.                         .if eax == IDOK
  118.                                 invoke _MyStrProc, hWnd
  119.                         .elseif eax == IDCANCEL
  120.                                 invoke EndDialog, hWnd, NULL
  121.                         .endif
  122.                 .else
  123.                         mov eax, 0
  124.                         ret
  125.                 .endif
  126.                
  127.                  mov eax, 1
  128.                 ret
  129. _MyDialogProc   endp

  130. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  131. start:
  132.                 invoke        GetModuleHandle,NULL
  133.                 mov        hInstance,eax
  134.                 invoke        DialogBoxParam,hInstance,IDD_DIA,NULL,offset _MyDialogProc,NULL
  135.                 invoke        ExitProcess,NULL
  136. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  137.                 end        start








  138. ;第二个文件 String.asm
  139. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  140. ;
  141. ;Written by
  142. ;
  143. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  144. ; string.asm
  145. ;
  146. ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  147.                 .386
  148.                 .model flat, stdcall
  149.                 option casemap :none

  150. .code       
  151. ;********************************************************************
  152. ; void        *_Cdecl memchr        (const void *s, int c, size_t n);
  153. ;********************************************************************

  154. _memchr proc uses edi  ecx sstr, char, szn
  155.                 mov edi, sstr
  156.                 mov al, byte ptr[char]
  157.                 mov ecx, szn
  158.                 cld
  159.                 repnz scasb
  160.                
  161.                 mov eax, edi
  162.                 dec eax
  163.                
  164.                 mov cl, byte ptr[char]
  165.                 cmp cl, byte ptr [eax]
  166.                 jnz NOTFIND
  167.                 ret
  168. NOTFIND:mov eax, 0
  169.                 ret
  170. _memchr endp


  171. ;********************************************************************
  172. ;  int         _Cdecl string        (const void *s1, const void *s2, size_t n);
  173. ;********************************************************************

  174. _memcmp proc uses edi esi ecx dstr, sstr, szn

  175.                 mov esi, sstr
  176.                 mov edi, dstr
  177.                 mov ecx, szn
  178.                 cld
  179.                
  180.                 repe cmpsb
  181.                
  182.                 dec esi
  183.                 dec edi
  184.                
  185.                 movzx eax, byte ptr[edi]
  186.                 sub   al, byte ptr[esi]
  187.                 movsx eax, al
  188.                 ret
  189. _memcmp endp

  190. ;********************************************************************
  191. ;   void        *_Cdecl memcpy        (void *dest, const void *src, size_t n);
  192. ;********************************************************************
  193. _memcpy proc  uses edi esi ecx dstr, sstr, szn
  194.                
  195.                 mov esi, sstr
  196.                 mov edi, dstr
  197.                 mov ecx, szn
  198.                 cld
  199.                 rep  movsb
  200.                
  201.                 mov eax, dstr
  202.                 ret
  203. _memcpy endp

  204. ;********************************************************************
  205. ;    void        *_Cdecl memset        (void *s, int c, size_t n);
  206. ;********************************************************************
  207. _memset  proc  uses edi esi ecx dstr, char, szn

  208.                 mov ecx, szn
  209.                 mov edi, dstr
  210.                 mov al, byte ptr [char]
  211.                
  212.                 rep stosb
  213.                
  214.                 mov eax, dstr
  215.                 ret
  216. _memset  endp

  217. ;********************************************************************
  218. ;  size_t         _Cdecl strlen        (const char *s);
  219. ;********************************************************************
  220. _strlen proc uses edi  sstr
  221.                
  222.                 mov edi, sstr
  223.                 mov al, 0
  224. LS:                cmp al, byte ptr [edi]
  225.                 jz RETURN
  226.                 inc edi
  227.                 jmp LS
  228. RETURN: mov eax, edi
  229.                 sub eax, sstr
  230.                
  231.                 ret
  232. _strlen endp

  233. ;********************************************************************
  234. ; int         _Cdecl strcmp        (const char *s1, const char *s2);
  235. ;********************************************************************
  236. _strcmp proc uses edi esi ecx ebx dest, src
  237.                 local @n:DWORD
  238.                
  239.                 invoke _strlen, dest
  240.                 mov ecx, eax

  241.                 invoke _strlen, src
  242.                 mov ebx, eax
  243.                
  244.                 cmp ecx, ebx
  245.                 jle ABOVE
  246.                 mov @n, eax
  247.                 jmp MEMCMP
  248. ABOVE:        mov @n, ecx
  249. MEMCMP: invoke _memcmp, dest, src, @n
  250.                 cmp eax,0
  251.                 jz CMPNEXT
  252.                
  253.                  ret
  254. CMPNEXT: mov eax, ecx
  255.                  sub eax, ebx       
  256.                  ret
  257. _strcmp endp

  258. ;********************************************************************
  259. ;    char        *_Cdecl strcpy        (char *dest, const char *src);
  260. ;********************************************************************
  261. _strcpy proc uses edi esi ecx dest, src
  262.                
  263.                 invoke _strlen, src
  264.                 mov ecx, eax
  265.                 inc ecx
  266.                 invoke _memcpy, dest, src, ecx
  267.                
  268.                 mov eax, dest
  269.                 ret
  270. _strcpy endp

  271. ;********************************************************************
  272. ;   char        *_Cdecl strcat        (char *dest, const char *src);
  273. ;********************************************************************
  274. _strcat        proc uses edi esi ecx dest, src
  275.                
  276.                 mov edi, dest
  277.                 invoke _strlen, dest
  278.                 add edi, eax
  279.                 invoke _strcpy, edi, src
  280.                
  281.                 mov eax, dest
  282.                 ret
  283. _strcat        endp

  284. ;********************************************************************
  285. ;   char        *_Cdecl strlwr        (char *s);
  286. ;********************************************************************
  287. _strlwr proc uses edi esi ecx sstr
  288.        
  289.                 mov edi, sstr
  290.                 mov al, 0
  291. LS:                mov ah, byte ptr [edi]
  292.                 cmp al, ah
  293.                 jz RETURN
  294.                
  295.                 cmp ah, 'A'
  296.                 jb NEXT
  297.                 cmp ah, 'Z'
  298.                 ja NEXT
  299.                
  300.                 add ah, 32
  301.                 mov byte ptr [edi], ah
  302.                
  303. NEXT:        inc edi
  304.                 jmp LS
  305. RETURN:
  306.                 mov eax, sstr
  307.                 ret
  308. _strlwr endp

  309. ;********************************************************************
  310. ;   char        *_Cdecl strupr        (char *s);
  311. ;********************************************************************
  312. _strupr proc uses edi sstr
  313.                 mov edi, sstr
  314.                 mov al, 0
  315. LS:                mov ah, byte ptr [edi]
  316.                 cmp al, ah
  317.                 jz RETURN
  318.                
  319.                 cmp ah, 'a'
  320.                 jb NEXT
  321.                 cmp ah, 'z'
  322.                 ja NEXT
  323.                
  324.                 sub ah, 32
  325.                 mov byte ptr [edi], ah
  326.                
  327. NEXT:        inc edi
  328.                 jmp LS
  329. RETURN:
  330.                 mov eax, sstr
  331.                 ret
  332. _strupr endp

  333. end

复制代码

kill203的C++代码



  1. //by kill203
  2. //关于C++字符串的相关操作的练习。。。
  3. #include<iOStream>
  4. #include<string>
  5. using namespace std;
  6. int strcm(char* str1,char* str2);
  7. void main()
  8. {
  9.         char str1[20],str2[20];
  10.         char str3[]="您输入的字符串长度小于6,请重新输入!";
  11.     char str4[]="您输入的字符串长度大于20,请重新输入!";
  12. L1:  cout<<"您第一个字符串是:";
  13.         cin>>str1;
  14.         if(strlen(str1)<6)
  15.         {        cout<<str3<<endl;
  16.             goto L1;
  17.         }
  18.      else if(strlen(str1)>20)
  19.         {       cout<<str4<<endl;
  20.                 goto L1;
  21.         }
  22. L2:        cout<<"您第二个字符串是:";
  23.         cin>>str2;
  24.         if(strlen(str2)<6)
  25.         {        cout<<str3<<endl;
  26.             goto L2;
  27.         }
  28.      else if(strlen(str2)>20)
  29.         {       cout<<str4<<endl;
  30.                 goto L2;         
  31.                  }
  32. if (strcm(str1,str2)==1)
  33. cout<<"你输入的这两个字符串不相等!"<<endl;
  34. else
  35. cout<<"你输入的这两个字符串相等!"<<endl;
  36. }
  37. int strcm(char* str1,char* str2)
  38. {
  39.          int i,c,d,re;
  40.          if (strlen(str1)<=strlen(str2))
  41.        {  
  42.             for(i=1;i<strlen(str1);i++)
  43.         {   c=str1[i];d=str2[i];
  44.                          if (c!=d)
  45.                             re=1;goto LS;
  46.         }
  47.         }
  48.     else
  49.         { for(i=1;i<=strlen(str2);i++)
  50.         {   c=str1[i];d=str2[i];
  51.                          if (c!=d)
  52.                      re=1;goto LS;
  53.                 }
  54.        }
  55.    LS: return re;
  56. }

复制代码


经过修改后的代码,只是函数优化了

  1. //by kill203
  2. //关于C++字符串的相关操作的练习。。。
  3. #include<iostream>
  4. #include<string>
  5. using namespace std;
  6. int strcm(char* str1,char* str2);
  7. void main()
  8. {
  9.         char str1[20],str2[20];
  10.         char str3[]="您输入的字符串长度小于6,请重新输入!";
  11.     char str4[]="您输入的字符串长度大于20,请重新输入!";
  12. L1:  cout<<"您第一个字符串是:";
  13.         cin>>str1;
  14.         if(strlen(str1)<6)
  15.         {        cout<<str3<<endl;
  16.             goto L1;
  17.         }
  18.      else if(strlen(str1)>20)
  19.         {       cout<<str4<<endl;
  20.                 goto L1;
  21.         }
  22. L2:        cout<<"您第二个字符串是:";
  23.         cin>>str2;
  24.         if(strlen(str2)<6)
  25.         {        cout<<str3<<endl;
  26.             goto L2;
  27.         }
  28.      else if(strlen(str2)>20)
  29.         {       cout<<str4<<endl;
  30.                 goto L2;         
  31.     }
  32. if (strcm(str1,str2)==1)
  33. cout<<"你输入的这两个字符串不相等!"<<endl;
  34. else
  35. cout<<"你输入的这两个字符串相等!"<<endl;
  36. }
  37. int strcm(char* str1,char* str2)
  38. {
  39. while((*str1==*str2)&&(*str1))
  40. {
  41. str1++;
  42. str2++;
  43. }
  44. if((*str1==*str2)&&(!*str1))       //如果str1=str2,且没有超出str1数组的边界
  45. return 0;
  46. else if((*str1)&&(!*str2))            //如果str1比str2的长度长
  47. return 1;  
  48. else if((*str2)&&(!*str1))           //如果str2比str1的长度长
  49. return 1;
  50. else
  51. return((*str1>*str2)?1:1);        

  52. /*
  53. 条件运算符:
  54. ?:
  55. 它是C语言中唯一的一个三目运算符,用来对条件求值,具有右结合性。
  56. 条件表达式:用条件运算符连接起来的式子。
  57. 其形式如下:
  58.    表达式1?表达式2:表达式3
  59. 运算规则:先计算表达式1,如果结果为真,则计算表达式2,并把表达式2的值作为整个表达式的值。

  60. 否则,如果表达式1的值为假,则计算表达式3,并把表达式3的值作为整个表达式的值。

  61. 例如:要得到变量a与b之间的最小值,可以表示成:
  62.    min = (a < b) ? a : b; //如果a < b,则min=a,否则a>=b,则min=b
  63. */
  64. }
复制代码


------------------------------------------------------
21st[P.Y.G]呵呵,偶来了
看了看楼主给的一个朋友写得c++,稍微有些粗糙。不到万不得已的时候,尽量不要用goto.
  1. language: c++


  2. #include <iostream>
  3. #include<cstring>     

  4. using namespace std;     

  5. int main()
  6. {
  7.   string s1,s2;
  8.   int len1,len2;
  9.   while(1)
  10.   {
  11.       cin>>s1>>s2;
  12.       len1=s1.length();
  13.       len2=s2.length();
  14.       if(len1>6&&len1<20&&len2>6&&len2<20)
  15.       {
  16.           int i=0;
  17.           int min=len1<len2?len1:len2;
  18.           bool quitflag=false;
  19.           while(i<=min)
  20.           {
  21.               if(s1[i]>s2[i])
  22.               {
  23.                   cout<<s1<<"\n";
  24.                   quitflag=true;
  25.                   break;
  26.               }
  27.               else if(s1[i]<s2[i])
  28.               {
  29.                   cout<<s2<<"\n";
  30.                   quitflag=true;
  31.                   break;
  32.               }
  33.               else
  34.               {
  35.                   i++;
  36.               }
  37.           }                 
  38.           if(quitflag==true)
  39.           {
  40.               break;
  41.           }
  42.           else
  43.           {
  44.               cout<<"they are equal,please retry!\n";     
  45.           }   
  46.       }
  47.       else
  48.       {
  49.           cout<<"out of range,please retry!\n";
  50.       }
  51.   }                       
  52.   return 0;
  53. }
复制代码
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表