簡體   English   中英

氣泡按字符串排序

[英]Bubble sort on string

 #include<conio.h>
 #include<stdio.h>

 int main(void)
 {
     int i,j,temp;
     char str[]="geeksforgeeks";
     for(i=1;str[i];i++)
     {
         for(j=0;str[j]!='\0';j++)
         {
             if(str[j]>str[j+1])
             {
                 temp=str[j];
                 str[j]=str[j+1];
                 str[j+1]=temp;
             }      
         }
     }
     for(i=0;str[i]!='\0';i++)
     {
         printf("%c",str[i]);
     }
}

我希望不計算string的長度就完成操作。因為我知道該錯誤位於for循環的條件語句中,然后告訴我應該是什么?

正如Weather Vane已經指出的那樣,錯誤發生在str[j]>str[j+1] 這將使用NULL終止符切換倒數第二個字符(從而使您錯過for循環的結束條件)。

要解決此問題,請將for循環結束條件更改為str[j+1]!='\\0'並在開頭添加一個檢查以確保數組中的第一個字符不是'\\ 0'! 我還建議研究Bubble搜索,因為此代碼有很多額外的迭代!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM