輸入: 20 個隨機產生,小於99999且無順序的正整數。
測試輸入資料依序為:89, 8889, 80089, 43, 50043
24, 12345, 54321, 79, 79586
3467, 21589, 400, 5689, 63
380, 961, 7824, 5, 26
處理: 將「測試輸入資料」,由小排到大。
排序中並累計資料交換之次數。
輸出: 每排一回合,列印未完成之中間結果一次,並列印該回合資料交換之次數,共十九回合。排序完成後,加印資料交換之總次數。
要求:
1. 必須使用副程式。
2. 測試輸入資料筆數改變時,不影響程式之正確執行。
以下是我寫的程式..可是還是有錯誤 各位大大麻煩幫我看一下
流程圖不知道要怎麼寫 會的大大麻煩交一下
語法:
#include <iostream.h>
#define number 5 //要排序的資料個數
void bubble (int a[],int n) //副程式名稱bubble
{ //氣泡排序法
int i,j,t,temp,sum=0;
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
sum++;
cout<<endl<<"交換之次數:"<<sum<<endl;
for(t=0;t<n;t++)
{
cout<<a[t]<<" ";
}
}
}
void main()
{
int i,list[number],j;
cout<<"*********氣泡排序法*********"<<endl;
for(j=0;j<number;j++)
cin>>list[j];
cout<<"排序前:";
for(i=0;i<number;i++)
{
cout<<list[i]<<" ";
}
bubble(list,number);
cout<<endl<<"排序後:";
for(i=0;i<number;i++)
{
cout<<list[i]<<" ";
}
}