1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| #include<stdio.h> #include<stdlib.h> #include<time.h>
int a,b,i;
void radix(int n[],int l){ int op[l],s[l]; int base=1,j,loc,times=1; while(base<=b){ for(i=0;i<l;i++){op[i]=n[i]/base;} base*=10;loc=0; for(i=0;i<=9;i++){ for(j=0;j<l;j++){ if(op[j]%10==i){s[loc++]=n[j];} } } for(i=0;i<l;i++){n[i]=s[i];} printf("照倒數第%d位排序的結果:\n",times++); for(i=0;i<l;i++){ printf("[%2d]%6d ",i,n[i]); if(i%5==4){printf("\n");} } } }
int main(){ printf("請輸入數量:"); scanf("%d",&a); printf("請輸入基值:"); scanf("%d",&b); int n[a]; srand((unsigned)time(NULL)); for(i=0;i<a;i++){ n[i]=rand()%b+1; printf("[%2d]%6d ",i,n[i]); if(i%5==4){printf("\n");} } radix(n,a); return 0; }
|