利用陣列下標,將n以內的數進行排序
巧用陣列下標
陣列的下標是一個隱含的很有用的陣列,特別是在統計一些數字,或者判斷一些整型數是否出現過的時候。例如,給你一串字母,讓你判斷這些字母出現的次數時,我們就可以把這些字母作為下標,在遍歷的時候,如果字母a遍歷到,則arr[a]就可以加1了,即 arr[a]++;
/**************************************** 功能:將n以內的數進行排序 時間: 2018-10-31 /****************************************/ #include "stdio.h" #define max 20 //數的最大值
int main(void) { int arr[]={1,4,3,7,5,3,8,2,1,4,9,9,10,18}; int temp[max+1]={0};
int i=0,j=0; for(i=0;i<sizeof(arr)/sizeof(int);i++) //搜尋每個數的個數 { temp[arr[i]]++; //將對應的數值作為陣列下標 } for(i=0;i<(max+1);i++) //列印每個數的個數 { printf(" %d,",temp[i]); } printf(" \n"); for(i=0;i<(max+1);i++) //直接排序列印 { for(j=0;j<temp[i];j++) { printf(" %d,",i); } } }