最近在幫助其它人的學習中發現了許多問題就數組和局部變量和全居變量的兩道例題進行刨析和思考!
排序操作
#include
void sort(array,n)
int array[];
int n;
{
int i,j,k,t;
for(i=0;i)/* 循環9次,這裡循環9次因為排列到第9次的時候最大的已經自動被排列到最後了 */
{
k=i;[/LIGHT] /* 把i記錄下來,以便進行調換操作 */
for(j=i+1;)j/* 在外部i循環內進行第二次循環,檢查所有的剩余元素 */
{
if(array[j])/* 利用k對比j循環的元素大小是否比外部i循環當前元素的值 */
{
k=j; /* 將k的值定義為j循環的最小元素的(下標),以便進行調換操作 */
}
t=array[k]; /* 將t的值定義為j循環的最小值元素的值 */
array[k]=array[i]; /* 把j循環內的(也就是array[j])的值,調換為此次外部i循環元素的值 */
array[i]=t; /* 將外部i循環的當前元素的值替換為前面以t為臨時存儲的(也就是array[j])的值 */
}
}
}
main()
{
int a[10],i; /* 定義a[10]為一個數組,用於輸入10個不同的數字;定義用於循環的便量i; */
printf("enter the array\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]); /* 利用這10次循環給每個數組元素盡心賦值操作從a[0]到a[9] */
}
sort(a,10);/* 把數組a的各數組元素地址和數組數量傳遞給自定義排序涵數的形式參數 */
printf("the sorted array:\n");
for(i=0;i<10;i++)
{
printf("%d",a[i]); /*利用10次循環把排序後的數組元素打印在屏幕上*/
}
printf("\n");
}