fork download
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.  
  5. int N[10], P[10];
  6. int Top;
  7. int num, i, prv, cur;
  8.  
  9.  
  10. Top = -1;
  11. for (i = 0; i <= 9; i++) {
  12. N[i] = -1;
  13. P[i] = -1;
  14. }
  15.  
  16.  
  17. i = 0;
  18.  
  19. if (scanf("%d", &num) != 1) return 1;
  20.  
  21. while (num != -1 && i < 10) {
  22. N[i] = num;
  23. prv = -1;
  24. cur = Top;
  25.  
  26. while (cur != -1 && N[i] >= N[cur]) {
  27. prv = cur;
  28. cur = P[cur];
  29. }
  30.  
  31.  
  32. P[i] = cur;
  33. if (prv >= 0) {
  34. P[prv] = i;
  35. } else {
  36. Top = i;
  37. }
  38.  
  39. i = i + 1;
  40.  
  41.  
  42. if (i < 10) {
  43.  
  44. scanf("%d", &num);
  45. }
  46. }
  47.  
  48.  
  49. printf("\n結果(昇順): ");
  50. cur = Top;
  51. while (cur != -1) {
  52. printf("%d ", N[cur]);
  53. cur = P[cur];
  54. }
  55. printf("\n");
  56.  
  57. return 0;
  58. }
Success #stdin #stdout 0s 5324KB
stdin
3
2
6
7
1
5
4
9
8
0
stdout
結果(昇順): 0 1 2 3 4 5 6 7 8 9