voidBubbleSort(inta[],intn)
{
int i,j,temp,flag = 1;
for(I = 0;I < n-1 & & flag;i++)//比較的通過次數
{
flag = 0;//不進行比較,將標誌設置為0。
for(j = 0;j < n-1-I;j++)//每次行程的比較次數
if(a[j]> a[j+1])//從小到大排序。
{
temp = a[j];
a[j]= a[j+1];
a[j+1]= temp;
flag = 1;//如果進行了比較,則將標誌設置為1。
}
}
}
void main()
{
int a[10],I;
printf(" pleaseinput 10 numbers:\ n ");
for(I = 0;I < 10;i++)
scanf("%d ",& a[I]);
printf(" Thearrayis:\ n ");
for(I = 0;I < 10;i++)
printf("%-4d ",a[I]);
BubbleSort(a,10);
printf(" \ nAftersortthearrayis:\ n ");
for(I = 0;I < 10;i++)
printf("%-4d ",a[I]);
printf(" \ n ");
}
操作效果:
擴展數據:
Main()函數用法:
1.大多數UNIX系統為main函數提供了三個參數。原型如下:
intmain(intargc,char*argv[],char * env[]);第三個參數是環境表地址。ANSIC規定主函數只有兩個參數,第三個參數與全局變量environ相比並沒有帶來更多的好處,所以POSIX.1也規定用environ代替第三個參數。
2、通常使用getenv和putenv函數來訪問特定的環境變量,而不是使用environ變量。
主函數的原型主要采用以下形式:
Intmain(intargc,char * argv []),參數argc表示輸入參數的個數,char * argv []表示傳入參數的字符串,是字符串的數組。
比如,在linux平臺下寫壹個小程序:
int main(intargc,char*argv[])
{
int I;
printf("argc:%d\n ",argc);
for(I = 0;i < argci++)
{
printf("argv[%d]:%s\n ",I,argv[I]);
}
退出(0);
}
3.用gcc編譯形成a.out的可執行文件,運行a.out,結果是:
argc=1,argv[0]="a.out "
運行程序的文件名也占用了壹個參數位置,也就是說argv數組中第壹個單元格指向的字符串始終是可執行程序的名稱,後續單元格指向的字符串是依次調用程序時的參數。這個賦值過程由操作系統完成,只需要使用。
4.在提交命令行參數時,系統會自動給指針數組加壹個NULL,所以對於(I = 0;i < argcI++)這句話也可以改成while (* argv!= null) int main (int argc)也可以省略其他參數的定義,這樣argc會在運行時直接返回參數個數,而不是其他。使用char * argv []運行命令行參數時,如果輸入參數有空格,則應該用雙引號括起來。