fork download
  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5. int N;
  6. char x[1000][110]={0};
  7.  
  8. while(scanf("%d",&N)!=EOF)
  9. {
  10. int i;
  11. for(i=0 ; i<N ; i++)
  12. scanf("%s",x[i]);
  13. printf("\n");
  14.  
  15. int j,k,bubble; char temp;
  16. for(i=N-1 ; i!=0 ; i--)
  17. {
  18. for(j=1 ; j<=i ; j++)
  19. {
  20. bubble=B_S(x[j-1],x[j]);
  21.  
  22. if(bubble==1)
  23. {
  24. for(k=0 ; k<110 ; k++)
  25. {
  26. temp=x[j][k];
  27. x[j][k]=x[j-1][k];
  28. x[j-1][k]=temp;
  29. }
  30. }
  31. }
  32. }
  33.  
  34. for(i=0 ; i<N ; i++)
  35. printf("%s\n",x[i]);
  36. }
  37. }
  38.  
  39. int B_S(char a[110],char b[110])
  40. {
  41. if(a[0]!='-' && b[0]=='-') return 1;
  42. else if(a[0]=='-' && b[0]!='-') return 3;
  43. else if(a[0]=='-' && b[0]=='-')
  44. {
  45. if(strlen(a)>strlen(b))
  46. return 3;
  47. else if(strlen(a)<strlen(b))
  48. return 1;
  49. else
  50. {
  51. int i;
  52. for(i=0 ; i<strlen(a) ; i++)
  53. {
  54. if(a[i]>b[i]) return 3;
  55. else if(a[i]<b[i]) return 1;
  56. }
  57. }
  58. return 3;
  59. }
  60. else
  61. {
  62. if(strlen(a)>strlen(b))
  63. return 1;
  64. else if(strlen(a)<strlen(b))
  65. return 3;
  66. else
  67. {
  68. int i;
  69. for(i=0 ; i<strlen(a) ; i++)
  70. {
  71. if(a[i]>b[i]) return 1;
  72. else if(a[i]<b[i]) return 3;
  73. }
  74. }
  75. return 3;
  76. }
  77. }
  78.  
Success #stdin #stdout 0s 2168KB
stdin
Standard input is empty
stdout
Standard output is empty