fork download
  1. #include <stdio.h>
  2.  
  3. int main(void) {
  4. int Top,num,i,prv,cur;
  5. int N[10],P[10];
  6.  
  7. Top=(-1);
  8. for(int i=0;i<9;i++){
  9. N[i]=(-1);
  10. P[i]=(-1);
  11. }
  12. i=0;
  13. printf("数値を入力\n");
  14. scanf("%d",&num);
  15. while(num!=(-1)){
  16. N[i]=num;
  17. prv=(-1);
  18. cur=Top;
  19. while((cur!=(-1))&&(N[i]>=N[cur])){
  20. prv=cur;
  21. cur=P[cur];
  22. }
  23. P[i]=cur;
  24. if(prv>=0){
  25. P[prv]=i;
  26. }else{
  27. Top=i;
  28. }
  29. i=i+1;
  30. scanf("%d",&num);
  31. }
  32. cur=Top;
  33. while(cur!=(-1)){
  34. printf("%d ",N[cur]);
  35. cur=P[cur];
  36. }
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0s 5324KB
stdin
32 64 58 79 15 40 -1
stdout
数値を入力
15 32 40 58 64 79