程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 插入排序-c語言else break;的問題

插入排序-c語言else break;的問題

編輯:編程綜合問答
c語言else break;的問題

用插入排序法對10個數進行降序排列

#define A 10  
#include <stdio.h>   
int main()   
{   
    int a[A+1],i,j,t;   
    for(i=1;i<=A;i++)   
    scanf("%d",&a[i]);   
    for(i=2;i<=A;i++)   
    {for(j=i-1;j>=1;i--,j--)   
    if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;} 
**  else break;**
    }   
    for(i=1;i<=A;i++)   
    printf("%d ",a[i]);   
    printf("\n");   
    return 0;   
} 

中間這個 else break;必須要加上嗎?我覺得不用呀,,因為如果不滿足if的話應該能進行下一次循環呀,,,可我去掉之後運行不了。。。為啥

最佳回答:


你不覺得你的這個程序已經進入一個死循環了嗎。。。。。那個break只是糾正這個死循環,讓你誤以為程序是沒有問題的,但是實際的問題是:
因為你的i是在循環體外面申明的變量,所以在你的嵌套循環中,裡面循環結束後,i的值都會減小為1,然後外層循環又給i加了1,到了裡面的循環
又減小到1,於是就無限循環了下去。。。。。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved