回覆列表
  • 1 # 萌無敵南巷似水浮生

    intmain()

    {inta[10];//既然是輸入10個整數,陣列開10個即可

    inttemp;

    inti,j;

    intk,n;

    k=0;

    n=10;//需要設定n=10,否則迴圈結束條件i<n-1就永遠不成立了

    for(i=0;i<n;i++)scanf("%d",&a[i]);//輸入10個數需要逐一輸入,格式"%d"不能有空格

    //所謂選擇法,即每次選擇當前範圍內最小的數然後放到前面,需要兩重迴圈

    for(i=0;i<n-1;i++)//第1重迴圈指定用i可以訪問陣列前面n-1個數,順序訪問

    {//然後在當前數之後的所有數中選擇最小的記錄下來,最後與當前i位置的數進行交換

    for(j=i+1,temp=i;j<n;j++)//迴圈令j可順序訪問當前i之後的陣列元素

    //迴圈開始temp假定i處元素最小

    if(a[j]<a[temp])temp=j;//如果當前j位置元素比temp記錄位置的小,temp記錄小的位置

    k=a[i];a[i]=a[temp];a[temp]=k;//交換當前i位置的數成temp記錄的i之後最小位置的數

    }

    for(i=0;i<n;i++)printf("%d",a[i]);printf("\n");//列印陣列也需要用迴圈逐一列印

    }

  • 中秋節和大豐收的關聯?
  • 求大四學生的畢業實習日誌?