COLOR.CPP
上传用户:wszmarenbt
上传日期:2013-04-26
资源大小:2552k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. //THE PROGRAM IS TO CHANGE THREE KINDS OF NUMBERS FROM RANDOM TO ORDER.
  2. //FILE COLOR.CPP
  3. #include      <dos.h>
  4. #include    <stdio.h>
  5. #include    <conio.h>
  6. #include   <stdlib.h>
  7. int SHIFTCOUNTS,COMPARECOUNTS,ARRAY[1000];
  8. void INITIAL();
  9. void GETTIME();
  10. void PRINT(const LIMIT);
  11. void PROCEDURE(const LIMIT);
  12. void GETRANDOM(const LIMIT);
  13. int ADJUST(const LIMIT,const DIVIDE,int POSITION);
  14. int main(void)
  15. {
  16. PROCEDURE(10);
  17. PROCEDURE(100);
  18. PROCEDURE(1000);
  19. return 0;
  20. }
  21. void INITIAL()
  22. {
  23. window(1,1,80,25);
  24. clrscr();
  25. SHIFTCOUNTS=0;
  26. COMPARECOUNTS=0;
  27. }
  28. void GETRANDOM(const LIMIT)
  29. {
  30. int CIRCLE;
  31. randomize();
  32. for (CIRCLE=0;CIRCLE<LIMIT;CIRCLE++)
  33. ARRAY[CIRCLE]=random(3);
  34. printf("n***** The Original Array *****n");
  35. for (CIRCLE=0;CIRCLE<LIMIT;CIRCLE++)
  36. printf("%d ",ARRAY[CIRCLE]);
  37. }
  38. int ADJUST(const LIMIT,const DIVIDE,int POSITION)
  39. {
  40. int LOWLIMIT,HIGHLIMIT,TEMP;
  41. if (POSITION==0) LOWLIMIT=0;
  42. else LOWLIMIT=POSITION;
  43. HIGHLIMIT=LIMIT-1;
  44. TEMP=ARRAY[LOWLIMIT];
  45. while (LOWLIMIT<HIGHLIMIT)
  46. {
  47. while ((LOWLIMIT<HIGHLIMIT) && (ARRAY[HIGHLIMIT]>=DIVIDE))
  48. {
  49. COMPARECOUNTS=COMPARECOUNTS+1;
  50. HIGHLIMIT=HIGHLIMIT-1;
  51. }
  52. COMPARECOUNTS=COMPARECOUNTS+1;
  53. ARRAY[LOWLIMIT]=ARRAY[HIGHLIMIT];
  54. SHIFTCOUNTS=SHIFTCOUNTS+1;
  55. while ((LOWLIMIT<HIGHLIMIT) && (ARRAY[LOWLIMIT]<DIVIDE))
  56. {
  57. COMPARECOUNTS=COMPARECOUNTS+1;
  58. LOWLIMIT=LOWLIMIT+1;
  59. }
  60. COMPARECOUNTS=COMPARECOUNTS+1;
  61. ARRAY[HIGHLIMIT]=ARRAY[LOWLIMIT];
  62. SHIFTCOUNTS=SHIFTCOUNTS+1;
  63. }
  64. ARRAY[LOWLIMIT]=TEMP;
  65. SHIFTCOUNTS=SHIFTCOUNTS+1;
  66. if (ARRAY[LOWLIMIT]==0) return(LOWLIMIT+1);
  67. else
  68. return(LOWLIMIT);
  69. }
  70. void GETTIME()
  71. {
  72. delay(50);
  73. struct time TIME;
  74. gettime(&TIME);
  75. printf("The Current Time is: %2d:%02d:%02d.%02dn",
  76.  TIME.ti_hour, TIME.ti_min, TIME.ti_sec, TIME.ti_hund);
  77. }
  78. void PRINT(const LIMIT)
  79. {
  80. int CIRCLE;
  81. printf("nn***** The Three Colors In Order *****n");
  82. for (CIRCLE=0;CIRCLE<LIMIT;CIRCLE++)
  83. printf("%d ",ARRAY[CIRCLE]);
  84. printf("nnThe  Shift  Times : %d n",SHIFTCOUNTS);
  85. printf("The Compare Times : %d nn",COMPARECOUNTS);
  86. }
  87. void PROCEDURE(const LIMIT)                      //Three const PROCEDUREs
  88. {
  89. int POSITION=0;
  90. INITIAL();
  91. //Initial Environment
  92. GETTIME();
  93. //To get beginnig time
  94. GETRANDOM(LIMIT);
  95. //To get the random array
  96. POSITION=ADJUST(LIMIT,1,POSITION);
  97. //First Division by "1"
  98. ADJUST(LIMIT,2,POSITION);
  99. //Second Division by "2"
  100. PRINT(LIMIT);
  101. //To print the colors
  102. GETTIME();
  103. //To get the ending time
  104. getch();
  105. //To dispaly by page
  106. }