来个破坏性的算法。
程序代码:
#include <stdio.h> void main() { char a[6][6] = {"50", "2", "203", "9", "1", "24"}; int i,k,m,n; for(i = 0; i < 6; i++)printf("%s ", a[i]); printf("\n"); do { k=-1; for(i=0;i<6;i++) { if(a[i][0]) { if(k<0) k=i; else for(m=0,n=0;a[i][m]||a[k][n];m++,n++) { if(!a[i][m])m--; if(!a[k][n])n--; if(a[i][m]<a[k][n])break; if(a[i][m]>a[k][n]) { k=i; break; } } } } if(k>=0) { printf("%s",a[k]); a[k][0]=0; } }while(k>=0); printf("\n"); }
能编个毛线衣吗?