Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. // Лаба 5.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <stdio.h>
  6. #include <time.h>
  7. #include <stdlib.h>
  8. #include <malloc.h>
  9. #include <conio.h>
  10. #include <iostream>
  11. #include <string.h>
  12. int main(void) {
  13. setlocale(LC_ALL, "");
  14.  
  15. int size; // размер массива
  16. int *Ar; // указатель на начало массива
  17. int *Cr; // текущие указатели
  18. int min0 = 1, max0 = -1;
  19. char temp; // для сортировки
  20. int i, j; // для сортировки
  21.  
  22. srand(time(NULL));
  23.  
  24. size = rand() % 150;
  25. size += 50;
  26.  
  27. printf("Размер массива=%d\n", size); // выделения памяти
  28. Ar = (int *)malloc(size*sizeof(int));
  29. printf("Начальный массив: \n");
  30. for (Cr = Ar; Cr<Ar + size; Cr++)
  31. {
  32. *Cr = -100 +rand() % 200;
  33. printf("%3d ", *Cr);
  34. }
  35. putchar('\n');
  36.  
  37. Cr = Ar;
  38.  
  39. for (i = size - 1; i >= 0 && min0 == 1; i--)
  40. if (*(Cr + i) >= 0)
  41. min0 = i;
  42. for (i = 0; i<min0; i++)
  43. if (*(Cr + i)<0)
  44. {
  45. temp = *(Cr + min0);
  46. *(Cr + min0) = *(Cr + i);
  47. *(Cr + i) = temp;
  48. min0--;
  49. while (*(Cr + min0)<0)
  50. min0--;
  51. }
  52. for (i = 0; i<size && max0 == -1; i++)
  53. if (*(Cr + i) <= 0)
  54. max0 = i;
  55. for (i = size - 1; i>max0; i--)
  56. if (*(Cr + i)>0)
  57. {
  58. temp = *(Cr + max0);
  59. *(Cr + max0) = *(Cr + i);
  60. *(Cr + i) = temp;
  61. max0++;
  62. while (*(Cr + max0)>0)
  63. max0++;
  64. }
  65. printf("Массив - результат: \n");
  66. for (Cr = Ar; Cr<Ar + size; Cr++)
  67. printf("%3d ", *Cr);
  68.  
  69. free(Ar);
  70. _getch();
  71. return(0);
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement